Interactive Presentation of Performance
The HPCToolkit Performance Tools
The Java-based hpcviewer
interactively presents program performance in a top-down fashion.
Table of Contents
and open the experiment database [hpctoolkit-database].
The Java-based hpcviewer
interactively presents program-performance experiment databases
in a top-down fashion.
Since experiment databases are self-contained,
they may be relocated from a cluster for visualization on a laptop or workstation.
- An HPCToolkit experiment database
produced by hpcprof
- -h --help
Print a help message.
- -jh, --java-heap
Set the JVM maximum heap size for this execution of hpcviewer.
The value of size
in megabytes (M) or gigabytes (G). For example, one can specify a size
of 3 gigabytes as either
3076M or 3G.
supports three principal views of an application's performance data.
Each view reports both inclusive costs (including callees) and exclusive costs (excluding callees).
- Top-down view.
A top-down view depicting the dynamic calling contexts (call paths) in which costs were incurred.
With this view one can explore the performance of an application in a top-down manner
to understand the costs incurred by calls to a procedure in a particular calling context.
- Bottom-up view.
This bottom-up view enables one to look upward along call paths.
It apportions a procedure's costs to its caller and, more generally,
its calling contexts.
This view is particularly useful for understanding the performance of software components or procedures
that are used in more than one context.
- Flat view.
This view organizes performance data according to the static structure of an application.
All costs incurred in any
calling context by a procedure are aggregated together in the flat view.
- Thread view
This view is to display the metrics of a certain threads (or processes) named Thread View, if the datababe is generated by hpcprof-mpi.
To activate the view, one needs to select a thread or a set of threads of interest.
To select a single thread, one can click on the dot from the plot graph.
Then click the context menu ``Show thread X'' to activate the thread view.
To select a group of threads, use the thread selection window by clicking the thread-view button from the calling-context view.
On the thread selection window, one needs to select the checkbox of the threads of interest.
To narrow the list, one can specify the thread name on the filter part of the window.
Recall that the format of the thread is ``process_id . thread_id''.
Hence, to specify just a main thread (thread zero), one can type '.0' on the filter, and the view only list threads 0 (such as 1.0, 2.0, 3.0).
Once threads have been selected, click OK,
and the Thread view will be activated.
The tree of the view is the same as the tree from calling context view, with the metrics only from the selected threads.
If there are more than one selected threads, the metrics are the average of the values of the selected threads.
The browser window is split into three panes:
can display graphs of thread-level metric values.
This is useful for quickly assessing load imbalance across processes and threads.
To create a graph,
choose the calling context view and select an item in the navigation pane,
then pop up the context menu by right-clicking the item.
A list of graphable metrics appears at the bottom of the context menu,
each with a sub-menu showing the three graph styles that hpcviewer
graph displays metrics by MPI rank and thread number;
The Sorted plot
graph displays metrics sorted by value;
and the Histogram
graph displays a barchart of metric value distributions.
Note: graphs are currently available only for databases created by hpcprof-mpi
(but not by hpcprof).
See Plotting Graphs of Thread-level Metric Values
in the User's Manual
for details and sample graphs.
provides five main menus:
This menu includes several menu items for controlling basic viewer operations.
This menu only contains one submenu:
- Show filter property
Open a filter property window which lists a set of filters and its properties.
allows users to define multiple filters, and each filter is associated with a type and a glob pattern (A glob pattern specifies which name to be removed by using wildcard characters such as *, ? and +).
There are three types of filter: ``self only''
to omit matched nodes,
to exclude only the subtree of the matched nodes, and ``self and descendants''
remove matched nodes and its descendants.
This menu is only visible if at least one database is loaded.
All actions in this menu are intended primarily for tool developer use.
By default, the menu is hidden. Once you open a database, the menu is then shown.
- Show views
Display all the list of views (Top-down view, Bottom-up view and flat view) for each database. If a view was closed, it will be suffixed by a "*closed*"
sign and can be reactivated by double-clicking the name of the view in the tree.
- Show metric properties
Display a list of metrics in a window. From this window, you can modify the name of the metric. For derived metrics, this also allows to modify the formula as well as the format.
A special set of menus for advanced users. These menus are useful to debug hpcviewer.
The menu consists of:
- Show database raw's XML
Enable one to request display of raw XML representation for performance data.
- Show CCT label
Display calling context ID for each node in the tree. This option is important to match between the node tree in hpcviewer with the data in experiment.xml.
- Show flat label
Display static ID for each node in the tree.
This menu contains only one submenu to reset the position of the views to the original default position.
is built on top of Eclipse, sometimes Eclipse fails to reposition its views due to its bugs.
A work-around to fix this issue is an ongoing work.
This menu displays information about the viewer. The menu contains two items:
Displays brief information about the viewer, including used plug-ins and error log.
- © 2002-2020, Rice University.
- See README.License.
Rice University's HPCToolkit Research Group
Email: hpctoolkit-forum =at= rice.edu