Caliper: A Performance Analysis Toolbox in a Library¶
Caliper is a program instrumentation and performance measurement framework. It is a performance-analysis toolbox in a library, allowing one to bake performance analysis capabilities directly into applications and activate them at runtime. Caliper is primarily aimed at HPC applications, but works for any C/C++/Fortran program on Unix or Linux.
Caliper’s data-collection mechanisms and source-code annotation API support a variety of performance-engineering use cases, e.g., performance profiling, tracing, monitoring, and auto-tuning.
Low-overhead source-code annotation API
Configuration API to control performance measurements from within an application
Recording program metadata for analyzing collections of runs
Flexible key:value data model – capture application-specific features for performance analysis
Fully threadsafe implementation, support for parallel programming models like MPI
Trace and profile recording with flexible online and offline data aggregation
Connection to third-party tools, e.g., NVidia Nsight/NVProf and Intel(R) VTune(tm)
Measurement and profiling functionality, such as timers, PAPI hardware counters, and Linux perf_events
Memory-allocation annotations: associate performance measurements with named memory regions
Caliper is available for download on GitHub.
This section covers basic Caliper usage, including source-code annotations and using Caliper’s built-in performance measurement configurations:
This section lists how-to articles for various use cases.
The reference documentation below covers Caliper user APIs and specific usage aspects in detail:
- Building Caliper
- Annotation API reference
- ConfigManager API reference
- Fortran support
- Connection to third-party tools
- Built-in profiling configurations
- Manual configuration
- Architecture and workflow
- Caliper services
- The CalQL query language
- Output formatting
- Caliper tools
- Python reader API
- Developer guide
2021 ECP Annual Meeting Tutorial slide deck.
Caliper was created by David Boehme.
A complete list of contributors is available on GitHub.
Major contributors include:
To reference Caliper in a publication, please cite the following paper:
David Boehme, Todd Gamblin, David Beckingsale, Peer-Timo Bremer, Alfredo Gimenez, Matthew LeGendre, Olga Pearce, and Martin Schulz. Caliper: Performance Introspection for HPC Software Stacks. In Supercomputing 2016 (SC16), Salt Lake City, Utah, November 13-18, 2016. LLNL-CONF-699263.
Caliper is released under a BSD 3-clause license. See LICENSE for details.
LLNL Software release ID LLNL-CODE-678900.