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* |
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.