|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.
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
This example assumes that your shell is bash. If your default shell is tcsh, use the iccvars.csh and mpichv2-intel.csh scripts.
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
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.