HPCToolkit is an integrated suite of tools for measurement and analysis of program performance on computers ranging from multicore desktop systems to GPU-accelerated supercomputers. HPCToolkit provides accurate measurements of a program's work, resource consumption, and inefficiency, correlates these metrics with the program's source code, works with multilingual, fully optimized binaries, has very low measurement overhead, and scales to large parallel systems. HPCToolkit's measurements provide support for analyzing a program execution cost, inefficiency, and scaling characteristics both within and across nodes of a parallel system.
HPCToolkit is supported on GNU/Linux for the following architectures:
| Architecture | GCC | DPKG (Debian/Ubuntu) | RPM (Fedora/RHEL/SUSE) |
|---|---|---|---|
| Intel x86-64 | x86_64 |
amd64 |
x86_64 |
| ARM 64-bit | aarch64 |
arm64 |
aarch64 |
| IBM Power (LE) | powerpc64le |
ppc64el |
ppc64le |
The sibling HPCViewer graphical explorer supports a wider range of platforms, see the HPCViewer repository for details.
For system administrators or users, the recommended way to install HPCToolkit using Spack.
You can install HPCToolkit with Spack and load into your shell with the following commands:
$ spack install hpctoolkit [+features...]
$ spack load hpctoolkit [+features...]To inquire about the optional features available when installing HPCToolkit (e.g. support for various GPUs), use the following command:
$ spack info hpctoolkitFor more information about Spack and how to install HPCToolkit using Spack, see the HPCToolkit User's Manual section Installing HPCToolkit using Spack
HPCToolkit supports building from source using Meson.
$ meson setup builddir/
$ cd builddir/
$ meson compile # -OR- ninja
$ meson test # -OR- ninja testFor information about Meson and how to build HPCToolkit from source using Meson, see the HPCToolkit User's Manual section Building from Source using Meson
The HPCToolkit User Manual is available here.
The HPCToolkit project team operates the 'HPCToolkit Users' Discord server. Discord offers a Slack-like experience for interacting developers and other users. We welcome questions, problem reports, or feature requests.
This source distribution as a whole is licensed under the LICENSE. This source distribution follows REUSE Specification Version 3 to declare copyright and licensing at file granularity, the individual license texts are provided in the LICENSES/ subdirectory.