- How to Download and Install PAPI
- How to Use PAPI (under construction)
- Supported Architectures
- PAPI Releases
- PAPI Papers and Presentations
The Performance Application Programming Interface (PAPI) provides tool designers and application engineers with a consistent interface and methodology for the use of low-level performance counter hardware found across the entire compute system (i.e. CPUs, GPUs, on/off-chip memory, interconnects, I/O system, energy/power, etc.). PAPI enables users to see, in near real time, the relations between software performance and hardware events across the entire computer system.
The ECP Exa-PAPI project builds on the latest PAPI project and extends it with:
- Performance counter monitoring capabilities for new and advanced ECP hardware, and software technologies.
- Fine-grained power management support.
- Functionality for performance counter analysis at "task granularity" for task-based runtime systems.
- "Software-defined Events" that originate from the ECP software stack and are currently treated as black boxes (i.e., communication libraries, math libraries, task-based runtime systems, etc.)
The objective is to enable monitoring of both types of performance events---hardware- and software-related events---in a uniform way, through one consistent PAPI interface. Third-party tools and application developers will have to handle only a single hook to PAPI in order to access all hardware performance counters in a system, including the new software-defined events.