MPI PERUSE Overview
PERUSE is a performance-revealing extensions interface to MPI. This interface is intended to
provide greater insight into the performance related processes and interactions between
application software, system software, and MPI message-passing middleware than the standard
MPI Profiling interface (PMPI) defined by the MPI specification. This additional level of
detailed performance information can be used by scalable parallel algorithm developers for
tuning purposes and by developers of performance monitoring tools.
The MPI Forum defined PMPI as a mechanism for application developers to obtain high-level
performance information about the behavior of both the application algorithm and the parallel
system. PMPI has proven its usefulness, and a large number of tools have emerged to address
the needs of parallel performance evaluation. However, PMPI provides for relatively high-level
profiling and does not give enough insight into the complex processes that take place within
the MPI library or in the software layers below MPI with which the MPI library interacts.
These issues become of vital importance for understanding the performance and scalability
of ultra-scale parallel platforms, such as the ones used by the DOE ASC program.
The main objective of PERUSE is to provide detailed information about events and activities
that take place within the MPI library or in the lower software layers but can be observed
by the MPI library. PERUSE aims at giving more information about the internal state and
processing of the MPI library than just looking at MPI as a black box (the level of profiling
available from PMPI). This information can then be used in application and system level
performance evaluation, which is not possible now by only using the standard PMPI interface.
In this respect, PERUSE complements PMPI.
|