|Note: Some of the information on this page is for our legacy systems only. The page is scheduled for an update to make it applicable to Graham.|
|Description: Profiling library for parallel codes|
|SHARCNET Package information: see IPM software page in web portal|
|Full list of SHARCNET supported software|
IPM (Integrated Performance Monitoring) is a portable profiling infrastructure for parallel codes. It provides a low-overhead profile of application performance and resource utilization in a parallel program.
module load ipm/intel/0.983
Not applicable ...
To start a parallel MPI run without IPM performance counters, you would normally do:
mpicc -O3 source.c -o executable sqsub -q mpi -r runtimeEstimate -n numberOfCores -o outputFile ./executable
To insert IPM performance counters, you need to recompile your code and submit it as usual:
mpicc -O3 source.c -o executable $CPPFLAGS $LDFLAGS -lipm sqsub -q mpi -r runtimeEstimate -n numberOfCores -o outputFile ./executable
With a fortran code, similarly you need to add "$CPPFLAGS $LDFLAGS -lipm" to the compile line, e.g.
mpif90 -O3 parallelTest.f90 -o test $CPPFLAGS $LDFLAGS -lipm
А summary of the performance information will be added to your output file. IPM also writes an XML file that can be used to generate a graphical webpage. This XML file is located in your run directory and usually has a name starting with your username followed by the jobID/etc., e.g. razoumov.1316726628.562583.0. To generate a webpage, simply pass the XML file to ipm_parse:
ipm_parse -html razoumov.1316726628.562583.0
A webpage directory will be created inside your current directory. Then copy the webpage directory to your desktop and open it with a browser, e.g. you can do from a Mac desktop:
scp -r firstname.lastname@example.org:workDirectoryPath/webpageDirectory . open webpageDirectory/index.html
o IPM Home (about,docs,demo,download)
o IPM Code on GitHub