JSON format
The JSON document contains a single JSON object containing two object members, info
containing general information about the profiled program, and samples
with the sampled information.
See an example of profile data exported to a JSON file in Example JSON output.
info
object
- command_line
Type: String
Command line call used to launch the profiled program. For example,
aprun -N 24 -n 256 -d 1 ./my_exe
- machine
Type: String
Hostname of the node on which the executable was launched.
- notes
Type: String
A short, optional, user-provided description of the run or other notes on configuration and compilation settings. This is specified by setting the environment variable
FORGE_NOTES
before running Linaro MAP.
- number_of_nodes
Type: Number
Number of nodes run on.
- number_of_processes
Type: Number
Number of processes run on.
- runtime
Type: Number
Runtime in milliseconds.
- start_time
Type: String
Date and time of run in ISO 8601 format.
- create_version
Type: String
Version of MAP used to create the
.map
file.
- metrics
Type: Object
Attributes about the overall run, reported once per process, each represented by an object with
max
,min
,mean
,var
, andsums
fields, ornull
, when the metric is not available.The
sums
series contains the sum of the metric across all processes or nodes for each sample.In many cases, the values over all nodes is the same. This means that the max, min, and mean values are the same, with variance zero. For example, in homogeneous systems,
num_cores_per_node
is the same over all nodes.
- wchar_total
Type: Object
The number of bytes written in total by I/O operation system calls (see
wchar
in the Linux Programmer’s Manual page ‘proc’:man 5 proc
).
- rchar_total
Type: Object
The number of bytes read in total by I/O operation system calls (see
rchar
in the Linux Programmer’s Manual page ‘proc’:man 5 proc
).
- num_cores_per_node
Type: Object
Number of cores available per node.
- memory_per_node
Type: Object
RAM installed per node.
- nvidia_gpus_count
Type: Object
Number of NVIDIA GPUs per node.
- nvidia_total_memory
Type: Object
NVIDIA GPU frame buffer size per node.
- rocm.gpus_count
Type: Object
Number of AMD GPUs per node.
- rocm.gpu_total_memory
Type: Object
AMD GPU Video Random Access Memory (VRAM) size per node
- num_omp_threads_per_process
Type: Object
Number of OpenMP worker threads used per process.
samples
object
- count
Type: Number
Number of samples recorded.
- window_start_offset
Type: Array of Numbers
Offset of the beginning of each sampling window, starting from zero. The actual sample might have been taken anywhere in between this offset and the start of the next window, that is the window offsets wi and wi+1 define a semi-open set (wi,wi+1) in which the sample was taken.
- activity
Type: Object
Contains information about the proportion of different types of activity performed during execution, according to different view modes. The types of view modes possibly shown are Main Thread, OpenMP, and pthreads as described in Main-thread, OpenMP, and Thread view modes. Only available view modes are exported, for example, a program without OpenMP sections will not have an OpenMP activity entry.
Note
The sum of the proportions in an activity might not add up to 1, this can happen when there are fewer threads running than Linaro MAP has expected. Occasionally the sum of the proportions shown for a sample in pthreads or OpenMP threads mode might exceed 1. When this happens, the profiled program uses more cores than Linaro MAP assumes the maximum number of cores per process can be. This can be due to middleware services launching helper threads which, unexpectedly to Linaro MAP, contribute to the activity of the profiled program. In this case, the proportions for that sample should not be compared with the rest of proportions for that activity in the sample set.
- metrics
Type: Object
Contains an object for each metric that was recorded. These objects contain four lists each, with the minimum, maximum, average, and variance of that metric in each sample. The format of a
metrics
entry is given in Metrics. All metrics recorded in a run are present in the JSON, including custom metrics. The names and descriptions of all core Linaro MAP metrics are given in Metrics. It is assumed that a user including a custom metrics library is aware of what the custom metric is reporting. See the Custom Metric Plugin Interface documentation.