Analyzed Graph Primitives#
The following structures provide execution statistics about STM entities such as Runnables, Hyperepochs, Epochs, Resources, and Clients.
RunInformationFull#
RunInformationFull is a container for information obtained during execution of an STM entity (e.g., a runnable, a hyperepoch). It
contains all start and end times of the entity in addition to its aggregate run statistics.
It has the following fields:
Field |
Type |
Description |
|---|---|---|
start_times |
numpy.ndarray |
A numpy ndarray containing the times at which the associated STM entity began execution. One array entry exists for each frame. |
end_times |
numpy.ndarray |
A numpy ndarray containing the times at which the associated STM entity ended execution. One array entry exists for each frame. |
duration |
numpy.ndarray |
A numpy ndarray containing the per-frame durations of the
associated STM entity. This attribute is equivalent to
“ |
overruns |
numpy.ndarray |
A numpy ndarray containing the indices into |
skipped_frames |
numpy.ndarray |
A numpy ndarray containing the indices into |
missing_frames |
numpy.ndarray |
A numpy ndarray containing the indices into |
duration_stats |
Aggregate statistics describing run durations. |
|
overrun_stats |
Duration distribution of the runnables which have overrun. This
is different from the overrun info within the
|
|
start_time_jitter_stats |
A Statistics object describing the jitter in the start times of an STM entity. |
|
can_intentionally_skip |
bool |
A boolean indicating whether this run info can have some runs intentionally skipped; because of round robin execution, etc. |
Statistics#
A container for the statistics describing the data obtained during a runtime instance of an STM entity (for example a runnable or a hyperepoch).
It has the following fields:
Field |
Type |
Description |
|---|---|---|
num_frames_executed |
int |
The number of frames that were executed during the run (frame skips not counted). |
mean_duration |
float |
The mean of the frame durations. |
std_duration |
float |
The standard deviation of the frame durations. |
percentile_99_duration |
float |
The ninety-ninth percentile of frame durations. |
max_duration |
int |
The maximum frame duration. |
min_duration |
int |
The minimum frame duration. |
StatisticsWithOverruns#
A container for the statistics describing the data obtained during a runtime instance of an STM entity (for example a runnable or a
hyperepoch). Expands upon Statistics by including overrun-related statistics.
It has the following fields, in addition to the fields described under Statistics:
Field |
Type |
Description |
|---|---|---|
num_overruns |
int |
The number of overruns which occurred. |
overrun_fraction |
float |
The fraction of frames which overrun as a float between 0 and 1. |
mean_overprovision |
float |
The mean in nanoseconds of the discrepancy between scheduled duration and actual duration (scheduled time / how long the runnable actually took). Note that this value can be negative as overruns occur. |
mean_overprovision_frac |
float |
The mean as a fraction of the discrepancy between scheduled
duration and actual duration ( |
CriticalPathInfo#
CriticalPathInfo is a container for the critical path information obtained from the STM Schedule and runtime log for a particular
hyperepoch.
It has the following fields:
Field |
Type |
Description |
|---|---|---|
path_metrics |
list(CriticalRunnableMetrics) |
A list of metrics per runnable in the critical path(s). |
scheduled_path_length |
int |
Length of the scheduled critical path in ns. |
mean_exec_path_length |
float |
Mean of observed critical path length in ns (includes overhead). |
overhead_fraction |
float |
Fraction of the critical path contributed by overhead (0 <=
|
resource_utilization |
dict(str→float) |
A Dictionary containing the resource type and the fraction of critical path operating on that resource type. |
CriticalRunnableMetrics#
A container for the following runnable metrics:
Field |
Type |
Description |
|---|---|---|
runnable_id |
str |
A string indicating the runnable ID. |
start_time |
int |
The scheduled start time of the runnable in ns. |
wcet |
int |
The WCET specified in the YAML input to the STM compiler. |
mean_exec_time |
int |
The mean of measured execution times in ns for this runnable. |
mean_exec_time_with_overhead |
int |
The mean of measured execution times for this runnable, including STM overhead for scheduling and logging in ns. |
mean_overhead |
int |
The mean of STM overhead seen for this runnable, in ns. |
resource_type |
str |
The type of hardware resource used by this runnable. |