IPM
Integrated Performance Monitoring (IPM) is a performance profiling tool for parallel MPI applications. It does not require you to modify your source code, and runs with low overhead. IPM provides the following information about an application:
- MPI communication time, statistics for each MPI call, communication topology, message size distributions, load balance
- Computation percentage
- PAPI event counts
- Node memory usage
- Wallclock, user, and system timings
IPM is installed on blacklight.
Usage
Compile your code
While logged in to blacklight, compile your code by following these steps.
- Load the IPM module
% module load ipm
- Link your code to the IPM library and compile
% icc -o prog prog.c $IPM_LIB -lmpi
Or, if you are using a makefile, add $IPM_LIB to the link line.
Run your code
To run your program, create a batch job to:
- Set up the module command.
- Load the IPM module
module load ipm
- Optionally, pick the level of reporting that you want
setenv IPM_REPORT full
- Run the program
mpirun -np 4 prog
View the IPM report
After your program runs, an summary IPM report is written to stdout. An XML file is also created, which can be used to create a webpage displaying graphics of the code performance.
The XML file will be named username.xxxxxxxxxx.xxxxxx.0 where each x is a digit.
To create the web page report do the following:
- While logged in to blacklight, type these commands:
-
% module load ipm
-
% ipm_parse -html XML-file-name
This generates a directory with a long name which incorporates a log of information about the job: prog-name_#cpus_XML-file-name_ipm_job-id. This directory contains html files.
-
- Copy the directory to your local machine.
- View the index.html file from this directory in your favorite browser.