mpiP is a lightweight profiling library for MPI applications. In addition to the MPI summary profiling provided by IPM, mpiP can provide “call site” statistics showing which calls in the code are dominating MPI execution time.
Using mpiP does not require code recompilation. Instead,
LD_PRELOAD is used to dynamically load the mpiP library (
libmpiP.so) as a wrapper to the MPI runtime.
A sample PBS job script using mpiP profiler with MPI executable (
prog.exe) is as shown below:
Currently, mpiP is available for openmpi version 1.3.3 and above.
The mpiP profiler generates a text based output file named something like:
To visualise the mpiP profile data on Raijin, you need to login to Raijin with a X display, eg. using
ssh -X or
ssh -Y, or with VNC. The detailed sample instruction on raijin is listed below.
mpipview is able to map MPI callsites in the profile data to source code. This requires the MPI program to be compiled with
-g option and linked with
libunwind, as follows.