Go to main content
Oracle® Developer Studio 12.5: Performance Analyzer

Exit Print View

Updated: June 2016
 
 

Metric Lists

Many of the er_print commands use a list of metric keywords. The syntax of the list is:

metric-keyword-1[:metric-keyword2…]

For dynamic metrics, those based on measured data, a metric keyword consists of three parts: a metric flavor string, a metric visibility string, and a metric name string. These are joined with no spaces, as follows.

flavorvisibilityname

For static metrics, those based on the static properties of the load objects in the experiment (name, address, and size), a metric keyword consists of a metric name, optionally preceded by a metric visibility string, joined with no spaces:

[visibility]name

The metric flavor and metric visibility strings are composed of flavor and visibility characters.

The allowed metric flavor characters are listed in Table 8. A metric keyword that contains more than one flavor character is expanded into a list of metric keywords. For example, ie.user is expanded into i.user:e.user.

Table 8  Metric Flavor Characters
Character
Description
e
Show exclusive metric value
i
Show inclusive metric value

The allowed metric visibility characters are listed in Table 9. The order of the visibility characters in the visibility string does not affect the order in which the corresponding metrics are displayed. For example, both i%.user and i.%user are interpreted as i.user:i%user.

Metrics that differ only in the visibility are always displayed together in the standard order. If two metric keywords that differ only in the visibility are separated by some other keywords, the metrics appear in the standard order at the position of the first of the two metrics.

Table 9  Metric Visibility Characters
Character
Description
.
Show metric as a time. Applies to timing metrics and hardware counter metrics that measure cycle counts. Interpreted as “+” for other metrics.
%
Show metric as a percentage of the total program metric. For attributed metrics in the callers-callees list, show metric as a percentage of the inclusive metric for the selected function.
+
Show metric as an absolute value. For hardware counters, this value is the event count. Interpreted as a “.” for timing metrics.
!
Do not show any metric value. Cannot be used in combination with other visibility characters.

When both flavor and visibility strings have more than one character, the flavor is expanded first. Thus, ie.%user is expanded to i.%user:e.%user, which is then interpreted as i.user:i%user:e.user:e%user.

For static metrics, the visibility characters period (.), plus (+), and percent sign (%), are equivalent for the purposes of defining the sort order. Thus, sort i%user, sort i.user, and sort i+user all mean that Performance Analyzer should sort by inclusive user CPU time if it is visible in any form. sort i!user means Performance Analyzer should sort by inclusive user CPU time, regardless of whether it is visible.

You can use the visibility character exclamation point (!) to override the built-in visibility defaults for each flavor of metric.

If the same metric appears multiple times in the metric list, only the first appearance is processed and subsequent appearances are ignored. If the named metric is not on the list, it is appended to the list.

Table 10 lists the available er_print metric name strings for timing metrics, synchronization delay metrics, memory allocation metrics, MPI tracing metrics, and the two common hardware counter metrics. For other hardware counter metrics, the metric name string is the same as the counter name. You can display a list of all the available metric name strings for the loaded experiments with the metric_list command. To list the counter names, issue the collect -h command with no additional arguments. See Hardware Counter Profiling Data for more information on hardware counters.

Table 10  Metric Name Strings
Category
String
Description
Clock profiling metrics
total
Total Thread Time
totalcpu
Total CPU Time
user
User CPU Time
system
System CPU Time
trap
Trap CPU Time
lock
User Lock Time
datapfault
Data-Page Fault Time
textpfault
Text-Page Fault Time
kernelpfault
Kernel Page Fault Time
stop
Stopped Time
wait
CPU wait time
sleep
Sleep Time
Hardware counter metrics
insts
Instructions issued
Available on all supported systems.
cycles
CPU cycles
Available on most supported systems. In addition, each processor has its own set of counters. Use collect -h to see the full list of counters for your system.
CPI
Cycles per instruction, calculated from cycles and insts metrics. Available only if both counters are recorded.
IPC
Instructions per cycle, calculated from cycles and insts metrics. Available only if both counters are recorded.
OpenMP profiling metrics
ompwork
Time spent doing work either serially or in parallel
ompwait
Time spent when OpenMP runtime is waiting for synchronization
masterthread
Master Thread Time is the total time spent in the master thread. It is only available from Oracle Solaris experiments. It corresponds to wall-clock time.
Synchronization delay metrics
sync
Synchronization wait time
syncn
Synchronization wait count
Heap tracing metrics
heapalloccnt
Number of allocations
heapallocbytes
Bytes allocated
heapleakcnt
Number of leaks
heapleakbytes
Bytes leaked
I/O tracing metrics
ioreadbytes
Bytes Read
ioreadcnt
Read Count
ioreadtime
Read Time
iowritebytes
Bytes Written
iowritecnt
Write Count
iowritetime
Write Time
ioothrcnt
Other IO Count
ioothertime
Other IO Time
ioerrornt
IO Error Count
ioerrortime
IO Error Time
Thread Analyzer metrics
raccesses
Data race accesses
deadlocks
Deadlocks
MPI tracing metrics
mpitime
Time spent in MPI calls
mpisend
Number of MPI point-to-point sends started
mpibytessent
Number of bytes in MPI Sends
mpireceive
Number of MPI point‐to‐point receives completed
mpibytesrecv
Number of bytes in MPI Receives
mpiother
Number of calls to other MPI functions
MPI profiling metrics
mpiwork
Time spent inside the MPI runtime doing work, such as processing requests or messages
mpiwait
Time spent inside the MPI runtime but waiting for an event, buffer, or message

In addition to the name strings listed in Table 10, two name strings can be used only in default metrics lists. These are hwc, which matches any hardware counter name, and any, which matches any metric name string. Also note that cycles and insts are common to SPARC® platforms and x86 platforms, but other flavors also exist that are architecture-specific.

To see the metrics available from the experiments you have loaded, issue the metric_list command.