PAPI

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

This software will be of interest only to HPC experts.

Availability and Restrictions

Versions

PAPI is available on Pitzer, Ruby, and Owens Clusters. The versions currently available at OSC are:

Version Owens Pitzer
5.6.0 X* X*
* Current default version

You can use module spider papi to view available modules for a given machine. For now, PAPI is available only with the Intel and gnu compilers. Feel free to contact OSC Help if you need other versions for your work.

Access

PAPI is available to all OSC users. If you have any questions, please contact OSC Help.

Publisher/Vendor/Repository and License Type

Innovation Computing Lab, University of Tennessee/ Open source

Usage

Usage on Owens

Set-up

Since PAPI version 5.2.0 is a System Install, no module is needed to run the application. To load a different version of the PAPI library, run the following command: module load papi. To load a particular version, use module load papi/version. For example, use  module load papi/5.6.0 to load PAPI version 5.6.0. You can use module spider papi to view available modules.

Building With PAPI

To build the code myprog.c with the PAPI 5.2.0 library you would use:

gcc -c myprog.c -lpapi
gcc -o myprog myprog.o -lpapi

For other versions, the PAPI library provides the following variables for use at build time:

VARIABLE USE
$PAPI_CFLAGS Use during your compilation step for C/C++ programs
$PAPI_FFLAGS Use during your compilation step for FORTRAN programs 
$PAPI_LIB Use during your linking step programs

For example, to build the code myprog.c with the PAPI version 5.6.0 library you would use:

module load papi
gcc -c myprog.c $PAPI_CFLAGS
gcc -o myprog myprog.o $PAPI_LIB

Batch Usage

When you log into owens.osc.edu you are actually logged into a linux box referred to as the login node. To gain access to the mutiple processors in the computing environment, you must submit your job to the batch system for execution. Batch jobs can request mutiple nodes/cores and compute time up to the limits of the OSC systems. Refer to Queues and Reservations and Batch Limit Rules for more info. 

Usage on Pitzer

Set-up

Since PAPI version 5.2.0 is a System Install, no module is needed to run the application. To load a different version of the PAPI library, run the following command: module load papi.

Building With PAPI

To build the code myprog.c with the PAPI 5.2.0 library you would use:

gcc -c myprog.c -lpapi
gcc -o myprog myprog.o -lpapi

For other versions, the PAPI library provides the following variables for use at build time:

VARIABLE USE
$PAPI_CFLAGS Use during your compilation step for C/C++ programs
$PAPI_FFLAGS Use during your compilation step for FORTRAN programs 
$PAPI_LIB Use during your linking step programs

For example, to build the code myprog.c with the PAPI version 5.6.0 library you would use:

module load papi
gcc -c myprog.c $PAPI_CFLAGS
gcc -o myprog myprog.o $PAPI_LIB

Batch Usage

When you log into pitzer.osc.edu you are actually logged into a linux box referred to as the login node. To gain access to the mutiple processors in the computing environment, you must submit your job to the batch system for execution. Batch jobs can request mutiple nodes/cores and compute time up to the limits of the OSC systems. Refer to Queues and Reservations and Batch Limit Rules for more info.

Further Reading

Supercomputer: