papi Overview

The Performance API (PAPI) project provides a standard application programming interface (API) for accessing hardware performance counters available on most modern microprocessors. These counters exist as a set of registers that count Events, occurrences of specific signals related to the processor's function. Monitoring these events facilitates correlation between the structure of source/object code and the efficiency of the mapping of that code to the underlying architecture. This correlation has a variety of uses in performance analysis including hand tuning, compiler optimization, debugging, benchmarking, monitoring and performance modeling.

PAPI aims to provide the tool designer and application engineer with a consistent interface and methodology for use of the performance counter hardware, e.g. instruction count, found in most major microprocessors. PAPI enables software engineers to see, in near real time, the relation between software performance and processor events.



PAPI is provided by OLCF in modules. A "module avail papi" will show all the available PAPI modules and their versions. A "man PAPI" will provide some online documentation, however, the "man" command should come after the "module load papi" to get the manpage with the latest API information.
module load papi
gcc -I ${PAPI_INC} -L ${PAPI_LIB} test.c -lpapi


  • papi@5.5.1%gcc@4.8.5
  • papi@5.5.1%gcc@4.8.5