+10
−10
+134
−52
+62
−22
+13
−9
+2
−0
Loading
Added start and end of the simulation
The simulation now has a start time and an end time
Everything runs related to the reference time zero.
The simulation loop and jobs are adjusted accordingly.
Additionally, a setup stage is added to prepare the running queue.
The data loader is rewritten to adjust the job's
related times.
This is reflected in the frontier data loader with extensive comments on the time layout.
(See below)
------
This is explanation on the frontier data loader:
These form the maximum extent of the simuluation time.
telemetry_start and telemetry_end.
[ ]
^ ^
telemetry_start telemetry_end
These values form the maximum extent of the simulation.
Telemetry start == 0! This means that any time before that is negative,
while anything after this is positive.
Next is the actual extent of the simulation:
[ ]
^ ^
simulation_start simulation_end
The start of the simulation simulation_start and telemetry_start are only
the same when fastfoward is 0.
In general simulation_end and telemetry_end are the same, as this is the
last time step we can simulate.
Both simulation_start and _end are set in engine.py
Additionally, jobs can have started before telemetry_start,
And can have a recorded ending after simulation_end,
[ ]
^ ^
first_start_timestamp last_end_timestamp
This means that the time between first_start_timestamp and telemetry_start
has no associated values in the traces!
The missing values after simulation_end can be ignored, as the simulatuion will have stoped before.
However, the times before telemetry_start have to be padded to generate
correct offsets within their data!
Within the simulation a job's current time is specified as the difference
between its start_time and the current timestep of the simulation.
With this each job's
- submit_time
- time_limit
- start_time
- end_time
- wall_time (end_time-start_time, actual runtime in seconds)
- trace_time (lenght of each trace in seconds)
has to be set for use within the simulation