General Description

IPM is a portable profiling infrastructure for parallel MPI codes. It provides a low-overhead performance profile of the performance aspects and resource utilization in a parallel program. Communication, computation, and IO are the primary focus.

Basic Usage

IPM can be loaded using the following module:

module load ipm

No source code modifications need to be made to profile your codes with IPM. You just need to link your MPI code to the IPM library as follows:

mpif90 -o foo foo.f90 /opt/crc/PROFILING/ipm/lib/libipm.a

Before running your executable, set the reporting mode to FULL as follows:

setenv IPM_REPORT full

Then run your MPI executable as normal e.g.

mpiexec -n 4 ./foo

Once your execution has terminated an IPM profile directory will be written to your work directory (with your netid as prefix), for the job. To see the final profile as an HTML report, the profile directory must be parsed as follows:

 ipm_parse -html netid.xxxxxx

On completion of this command, a new directory is created which contains the HTML report. To view the profile, change into the directory and use firefox to open the index.html document.

Further Information

See the official website: IPM Webpage