MPE for MVAPICH2

MPE (Multi-Processing Environment) is a software package for performance analysis of MPI programs. Running MPE-instrumented code produces log files that can be post-processed to get a graphical representation of the communication pattern in an MPI program. By looking at the time course of the MPI calls by the different processes, it is possible to see problems with synchronization or load-balancing. This can be done without changing the program, but, it still needs to be recompiled with additional libraries as shown in the following example.

On the HPC cluster, MPE is only supported with mvapich version 2. See the corresponding pages on the usage of this implementation: gnu compiler, the intel compiler and the pgi compiler.

Compiling

To compile and link your program with the MPE and MPI libraries, add the flag -mpe=mpilog to the commands used to compile MPI programs (mpicc, mpicxx, mpif77 and mpif90). This will request that the code be linked with the MPE logging libraries.

For example, to compile your program with the intel compiler, you have to execute the following statements:

[paulvdm@grid ~/example2]$ source /usr/local/profile.d/iccvars.sh
[paulvdm@grid ~/example2]$ source /usr/local/profile.d/mpichv2-intel.sh
[paulvdm@grid ~/example2]$ mpicc -o trap trap.c -mpe=mpilog
trap.c(78): (col. 16) remark: LOOP WAS VECTORIZED.

This example assumes that your shell is bash. If your default shell is tcsh, use the iccvars.csh and mpichv2-intel.csh scripts.

Running

You have to run your program in the usual way. See the moab documentation about submitting jobs to the queuing system.

MPE will produce a file in the CLOG-2 format.

Viewing the results

For a graphical view of the log file contents (assuming that you have an X display server running and have logged into the hpc login node with X Window tunneling enabled), use jumpshot:

[paulvdm@grid ~/example2]$ source /usr/local/profile.d/mpichv2-intel.sh
[paulvdm@grid ~/example2]$ jumpshot trap.slog2

The jumpshot program on the HPC is Jumpshot-4, which is expecting an input file in the SLOG-2 format. Click Yes in the confirmation dialogue box to bring up a CLOG-2 to SLOG-2 conversion program.