hpctoolkit

[ Home | Overview | Publications | Software/Downloads ] • [ Documentation/Questions | Training Videos and Slides ] • [ People | Acks ]


HPCToolkit is an integrated suite of tools for measurement and analysis of program performance on computers ranging from multicore desktop systems to the nation's largest GPU-accelerated supercomputers. By using statistical sampling of timers and hardware performance counters on CPUs, HPCToolkit collects accurate measurements of a program's CPU work, resource consumption, and inefficiency and attributes them to the full calling context in which they occur. By monitoring GPU operations, gathering instruction-level metrics within GPU kernels, and attributing the costs of GPU work to heterogeneous calling contexts. HPCToolkit provides insight into the performance of GPU-accelerated codes. HPCToolkit works with multilingual, fully optimized applications that are statically or dynamically linked. HPCToolkit is designed for use on large parallel systems. HPCToolkit's presentation tools enable rapid analysis of a program's execution costs, inefficiency, and scaling characteristics both within and across nodes of a parallel system. HPCToolkit supports measurement and analysis of serial codes, threaded codes (e.g. pthreads, OpenMP), MPI, and hybrid (MPI+threads) parallel codes, as well as GPU-accelerated codes that offload computation to AMD, Intel, or NVIDIA GPUs.

The figure below illustrates HPCToolkit's primary components and their relationships.

Quick Links

Exascale Computing Project (ECP)

HPCToolkit is part of the ECP which is a collaborative effort of two US Department of Energy (DOE) organizations - the Office of Science (DOE-SC) and the National Nuclear Security Administration (NNSA).

In this project, the goal is to extend HPCToolkit with improved capabilities for measurement and analysis of computation, data movement, communication, and I/O at extreme scale. Planned enhancements include improved support for lightweight measurement of massive node-level parallelism using hardware counters, measuring OS activity, recording measurement data efficiently, analyzing performance data in parallel, and integrating code-centric, time-centric, data-centric, and resource-centric views for analysis.

Highlighted platforms

License

HPCToolkit is released under the 3-clause BSD license and is available on GitLab/HPCToolkit.

[Page last updated: 2022/10/11]


©2002-2023 Rice UniversityRice Computer Science