1. Overview of the Performance Analyzer
3. Collecting Performance Data
4. The Performance Analyzer Tool
5. The er_print Command Line Performance Analysis Tool
Commands That Control the Function List
Commands That Control the Callers-Callees List
cprepend function-name [N | ADDR]
cappend function-name [N | ADDR]
Commands That Control the Call Tree List
Commands That Control the Leak and Allocation Lists
Commands That Control the Source and Disassembly Listings
source|src { filename | function_name } [ N]
disasm|dis { filename | function_name } [ N]
Commands That Control Hardware Counter Dataspace and Memory Object Lists
mobj_define mobj_type index_exp
Commands That Control Index Object Lists
indxobj_define indxobj_type index_exp
Commands for the OpenMP Index Objects
Commands That Support the Thread Analyzer
Commands That List Experiments, Samples, Threads, and LWPs
Commands That Control Filtering of Experiment Data
Specifying a Filter Expression
Listing Operand Tokens for a Filter Expression
Selecting Samples, Threads, LWPs, and CPUs for Filtering
Commands That Control Load Object Expansion and Collapse
object_show object1,object2,...
object_hide object1,object2,...
object_api object1,object2,...
object_select object1,object2,...
name { long | short } [ :{ shared_object_name | no_shared_object_name } ]
viewmode { user| expert | machine }
Commands That Print Other Information
Commands That Set Defaults Only For the Performance Analyzer
6. Understanding the Performance Analyzer and Its Data
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 given in Table 5-1. 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 5-1 Metric Flavor Characters
|
The allowed metric visibility characters are given in Table 5-2. The order of the visibility characters in the visibility string does not matter: it 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 5-2 Metric 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 the Analyzer should sort by inclusive user CPU time if it is visible in any form, and sort i!user means the Analyzer should sort by inclusive user CPU time, whether or not 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 5-3 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 get a list of all the available metric name strings for the loaded experiments with the metric_list command. A list of counter names can be obtained by using the collect command with no arguments. See Hardware Counter Overflow Profiling Data for more information on hardware counters.
Table 5-3 Metric Name Strings
|
In addition to the name strings listed in Table 5-3, two name strings can only be used 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 list all available counters, use the collect command with no arguments.
To see the metrics available from the experiments you have loaded, use the metric_list command.