Performance Application Programming Interface
In computer science, Performance Application Programming Interface (PAPI) is a portable interface (in the form of a library) to hardware performance counters on modern microprocessors. It is being widely used to collect low level performance metrics (e.g. instruction counts, clock cycles, cache misses) of computer systems running UNIX/Linux operating systems.
PAPI provides predefined high level hardware events summarized from popular processors and direct access to low level native events of one particular processor. Counter multiplexing and overflow handling are also supported.
Operating system support for accessing hardware counters is needed to use PAPI. For example, a Linux/x86 kernel has to be patched with a performance monitoring counters driver (perfctr link) to support PAPI.
See also
Further reading
- A Portable Programming Interface for Performance Evaluation on Modern Processors / International Journal of High Performance Computing Applications archive Volume 14 Issue 3, August 2000, Pages 189-204 doi:10.1177/109434200001400303 (English)
- Dongarra, Jack, et al. "Using PAPI for hardware performance monitoring on Linux systems" // Conference on Linux Clusters: The HPC Revolution. Vol. 5. Linux Clusters Institute, 2001. (English)
External links
- Official site
- Philip Mucci, Performance Monitoring with PAPI / Dr.Dobbs, June 01, 2005
- Development of a PAPI Backend for the Sun Niagara 2 Processor, 2009