• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • System Task Manager SDK Reference  5.22
    All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Pages
    Analytics Pickle Structure

    STM Analytics Pickle Structure

    STM Analytics generates a graph structure for presenting output information, which is captured by the output pickle. The CSV and HTML reports only provide a subset of metrics that can be extracted from the pickle.

    This page provides information about the higher-level structure of the report, which leverages analytics primitives as defined here: Analyzed Graph Primitives.

    At the top level, the analytics pickle is a dictonary of the schedule IDs present in the *.stm schedules that map to AnalyzedSchedule objects such as shown below:

        AnalyzedScheduleId0: AnalyzedSchedule0
        AnalyzedScheduleId1: AnalyzedSchedule1
    

    AnalyzedSchedule

    The AnalyzedSchedule contains execution information about the hyperepochs, epochs and runnables within that schedule.

    It has the following fields:

    Field Type Description
    id_ str The name of the schedule.
    schedule_identifier int The numerical identifier associated with the schedule defined in the input graph
    hyperepochs list(AnalyzedHyperepoch) A list of AnalyzedHyperepochs that contains execution information about hyperepochs and epochs
    clients list(AnalyzedClient) A list of AnalyzedClients that contains execution information about runnables per client
    schedule_version tuple(int, int, int) A tuple of 3 integers marking the STM Compiler version used to generate the schedule
    log_version tuple(int, int, int) A tuple of 3 integers marking the STM Runtime version used to generate the runtime log

    AnalyzedHyperepoch

    The AnalyzedHyperepoch contains execution information about the epochs in the hyperepoch, and also about the critical paths present in the execution of the application.

    It has the following fields:

    Field Type Description
    id_ str The name of the hyperepoch
    resources list(str) A list of strings naming the resources used by this hyperepoch.
    schedule_length int The schedule length of the hyperepoch in nanoseconds.
    epochs list(AnalyzedEpoch) A list of AnalyzedEpochs that contains execution information abou the epochs
    resource_metrics list(AnalyzedResource) A list of AnalyzedResources that describes the runtime behaviour of this hyperepoch when viewed over different sets of resources.
    pre_compilation_critical_path_info CriticalPathInfo A CriticalPathInfo object that provides information about runnables that were present in the critical path(s) of the original DAG before STM Compiler's schedule generation.
    post_compilation_critical_path_info CriticalPathInfo A CriticalPathInfo object that provides information about runnables that are present in the critical path(s) of the compiled schedule after the STM Compiler's schedule generation.
    runtime_critical_path_info CriticalPathInfo Information about runnables that are present in the critical path(s) as observed in the executed schedule.
    run_info RunInformationFull Runtime statistics about this hyperepoch.

    AnalyzedEpoch

    The AnalyzedEpoch contains execution information about an epoch. It has the following fields:

    Field Type Description
    id_ str The name of the epoch
    period int The period defined for the epoch in nanoseconds
    frames int The number of times this epoch repeats within the hyperepoch
    run_infos list(RunInformationFull) The information pertaining to the executed runtime instance. Each execution instance in a multi-epoch run has its own associated entry within the run info list.

    AnalyzedResource

    The AnalyzedResource contains execution and utilization information about a resource. It has the following fields:

    Field Type Description
    id_ str The name of the resource
    mean_utilization_frac float The mean fraction of time during which the resource was busy during the entire run across all frames.
    mean_internal_fragmentation_frac float Internal fragmentation refers to the difference between executed time and scheduled time. This variable contains the mean of the aggregate duration of runnables on this resource, divided by the aggregate scheduled duration of runnables on this resource. In other words, 1 - mean(aggregate runnable duration / aggregate scheduled runnable duration). The result isclipped at 0, such that overruns will not result in a value less than that. The mean is computed over all frames
    mean_external_fragmentation_frac float External fragmentation refers to the difference between scheduled runnable time and scheduled hyperepoch time. This variable contains the mean of the aggregate scheduled duration of runnables on this resource, divided by the scheduled duration of the hyperepoch which this resource belongs to. In other words, 1 - mean(aggregate scheduled runnable duration / aggregate scheduled hyperepoch duration). The result is clipped at 0, such that overruns will not result in a value less than that. The mean is computed over all frames
    duration_stats Statistics The statistics relating to the aggregate runnable durations on this resource.

    AnalyzedClient

    The AnalyzedClient object contains information about the client and the runnables contained inside it. It has the following fields:

    Field Type Description
    id_ str The name of the client.
    resources list(str) A list of resources used by this client
    runnables list(AnalyzedRunnable) A list of AnalyzedRunnable objects for each runnable belonging to this client

    AnalyzedRunnable

    The AnalyzedRunnable object contains statistical information about the execution behavior of the runnable. It has the following fields:

    Field Type Description
    id_ str The name of the runnable
    start int The scheduled start time of the runnable in nanoseconds
    end int The scheduled end time of the runnable in nanoseconds
    runnable_type str The type of the runnable
    resources list(str) The list of resources used by this runnable
    priority int The priority of the runnable
    submittee_id str The id of the submittee if this runnable is a submitter
    frame_id int An integer representing the epoch frame this runnable belongs to inside a hyperepoch
    modulo int Size of the step group, if this runnable is round-robinned
    step list(int) List of indices for which the runnable executes
    alias_group str Alias group of the runnable, if it is round-robinned
    run_info RunInformationFull Execution information about this runnable without STM Overhead information
    run_info_with_overhead RunInformationFull Execution information about this runnable along with the associated STM Overhead for it
    人人超碰97caoporen国产