Temporal Simulator

In this family of classes, we want to extract temporal characteristics using execution of simulations. We can extract average estimates by average over several executions of the simulation (sample average). All of these classes extend the functionality provided by ServerlessSimulator, you can use the same arguments and call the same methods, with some exteded functionality provided below.

Serverless Temporal Simulator

class simfaas.ServerlessTemporalSimulator.ServerlessTemporalSimulator(running_function_instances, idle_function_instances, *args, **kwargs)

Bases: simfaas.ServerlessSimulator.ServerlessSimulator

ServerlessTemporalSimulator extends ServerlessSimulator to enable extraction of temporal characteristics. Also gets all of the arguments accepted by ServerlessSimulator

Parameters
  • running_function_instances (list[FunctionInstance]) – A list containing the running function instances

  • idle_function_instances (list[FunctionInstance]) – A list containing the idle function instances

Exponential Temporal Simulator

The exponential temporal simulator assume exponential inter-event distribution for both arrival and departure from each function instance.

class simfaas.ServerlessTemporalSimulator.ExponentialServerlessTemporalSimulator(running_function_instance_count, idle_function_instance_next_terminations, *args, **kwargs)

Bases: simfaas.ServerlessTemporalSimulator.ServerlessTemporalSimulator

ExponentialServerlessTemporalSimulator is a simulator assuming exponential distribution for proceesing times which means each process is state-less and we can generate a service time and use that from now on. This class extends ServerlessTemporalSimulator which has functionality for other processes as well.

Parameters
  • running_function_instance_count (integer) – running_function_instance_count is the number of instances currently processing a request

  • idle_function_instance_next_terminations (list[float]) – idle_function_instance_next_terminations is an array of next termination scheduled for idle functions if they receive no new requests.