HPCToolkit provides the hpcviewer
(Adhianto, Mellor-Crummey, and Tallent 2010; N. R. Tallent et al. 2011) performance presentation tool for interactive examination of performance databases.
hpcviewer
presents a heterogeneous
calling context tree that spans both CPU and GPU contexts, annotated
with measured or derived metrics to help users assess code performance
and identify bottlenecks.
The database generated by hpcprof
consists of 4 dimensions:
hpcrun
-t
option).hpcrun
such as cycles, number of instructions, stall percentages, and derived metrics such as ratio of idleness.To simplify performance data visualization, hpcviewer
restricts
the display of two dimensions at a time: the Profile View displays
pairs of (call-path, metric) or (execution context,
metric) dimensions and the Trace View visualizes the
behavior of execution contexts over time.
The table below summarizes views supported by hpcviewer
.
View | Dimension | Note |
---|---|---|
Profile - Metric view | Call-path x Metrics | display the tree and its associated metrics |
Profile - Thread view | Call-path x Metrics | display the tree and its metrics for a set of execution contexts |
Profile - Graph view | Execution contexts x Metric | display a metric of a specific tree node for all execution contexts |
Trace - Main view | Execution contexts x Time | display execution context behavior over time |
Trace - Depth view | Call-path x Time | display call stacks over time of an execution context |
Note that in the Profile view, GPU stream execution contexts are not shown in this view; metrics for a GPU operation are associated with the calling context in the thread that initiated the GPU operation (Section Thread View). In the Trace view, GPU streams have their trace lines independently from their host, allowing for the traces between hosts and devices to be separated.
Requirements to launch hpcviewer
:
hpcviewer
can be launched from a command line (Linux platforms) or by clicking the hpcviewer
icon (for Windows, Mac OS X, and Linux platforms).
The command line syntax is as follows:
hpcviewer [options] [<hpctoolkit-database>]
Here, <hpctoolkit-database>
is an optional argument to load a database automatically.
Without this argument, hpcviewer
will prompt for the location of a database. Possible options for hpcviewer
are shown below:
-h, --help
-jh, --java-heap
sizehpcviewer
. The value of size must be in megabytes (M) or gigabytes (G). For example, one can specify a size of 3 gigabytes as either 3076M or 3G.-v, --version
On Linux, when hpcviewer
is installed using its install.sh
script, one can specify the maximum size for the Java heap on the current platform. When analyzing measurements for large and complex applications, it may be necessary to use the --java-heap
option to specify a larger heap size for hpcviewer
to accommodate many metrics for many contexts.
On macOs and Windows, the value of JVM maximum heap size is stored in hpcviewer.ini
file, specified with -Xmx
option.
On macOS, this file is located at hpcviewer.app/Contents/Eclipse/hpcviewer.ini
.
hpcviewer
provides four main menus: File, Filter, View, and Help.
This menu includes several menu items for controlling basic viewer operations.
hpcviewer
window that is independent of the existing one.
However, filtering CCT node operation (see Filtering Tree Nodes) will also affect all hpcviewer
windows.hpcviewer
window replacing the existing opened databases.hpcviewer
application.This menu only contains one submenu:
This menu is only visible if at least one database is loaded.
Edit
button to rename or modify a derived metric, including the formula.
Once the change is confirmed, it will be propagated to the list and all views (Top-down, Bottom-up, and Flat) in the current database.This menu displays information about the viewer. The menu contains only one menu item:
Some important hpcviewer
limitations are listed below:
hpcviewer
's response time may become sluggish as this requires a large amount of memory.hpcviewer
is mainly tested on Windows 10. Support for Windows 11 is still experimental.hpcviewer
is not very visible on Linux with a dark theme. It is still an ongoing work.