Prism 6.0 User's Guide

Overview of MPI Performance Analysis

It is not always important to optimize all of your code. Rather, certain parts will account for most of the run time and only those parts need be optimized. Thus, it is important to be able to identify time-consuming parts of your code, evaluate their performance, and characterize those parts so that tuning can be effective. Prism helps you to determine how efficiently the various parts of your Sun MPI program run and where your program's performance can be improved. It does this by providing data on MPI communication events, and on pairs of such events, called intervals.

Prism generates this information when running Sun MPI programs with a specially modified version of the Sun MPI 4.0 library. The modified library includes macro codes that act as selectively controllable tracepoints (probes). The probes employ Trace Normal Form (TNF), an extensible system for instrumenting program code. Each API-level routine in the library has been instrumented with a start probe and an end probe.


Note -

You can also add TNF probes directly to your code if your programs are written in C or C++. TNF does not support the direct insertion of probes into Fortran code. For information about creating TNF probes, see the Solaris man page TNF_PROBE (3X).


You can use Prism's TNF analysis features to identify situations in which the synchronization in your MPI program is poor. For example, a receiver may wait for data from its corresponding sender--leaving processes idle. You can use Prism's MPI performance analysis features to identify which routines are responsible for performance differences. Then you can use what you've learned about your program to adjust your algorithm and improve your program's performance.

For further information about the TNF-instrumented Sun MPI library, see Appendix C of the Sun MPI 4.0 Programming and Reference Guide.

For a general discussion of profiling methodology, emphasizing the use of timers, as well as discusions of profiling utilities not discussed in the current chapter, see Appendix C, General Profiling Methodology, Timers, And Other Profiling Utilities.

Prism works with both 64-bit or 32-bit binaries on Solaris 7. However, it cannot do performance analysis of 32-bit binaries unless you use the -32 option when you start Prism on Solaris 7 with the 32-bit program. For further information see "Use the -32 Option to Load 32-Bit Binaries For Performance Analysis on Solaris 7".