The objective of the MPI profiling interface is to ensure that it is relatively easy for authors of profiling (and other similar) tools to interface their codes to MPI implementations on different machines.
Since MPI is a machine independent standard with many different
implementations, it is unreasonable to expect that the authors of
profiling tools for MPI will have access to the source code
that
implements MPI on any particular machine. It is therefore necessary to
provide a mechanism by which the implementors of such tools can
collect whatever performance information they wish without
access to the underlying implementation.
We believe that having such an interface is important if MPI is to be
attractive to end users, since the availability of many different
tools will be a significant factor in attracting users to the MPI
standard.
The profiling interface is just that, an interface. It says
nothing about the way in which it is used. There is therefore no
attempt to lay down what information is collected through the
interface, or how the collected information is saved, filtered, or
displayed.
While the initial impetus for the development of this interface arose
from the desire to permit the implementation of profiling tools, it is
clear that an interface like that specified may also prove useful for
other purposes, such as ``internetworking'' multiple MPI
implementations. Since all that is defined is an interface, there is
no objection to its being used wherever it is useful.
As the issues being addressed here are intimately tied up with the way
in which executable images are built, which may differ greatly on
different machines, the examples given below should be treated solely
as one way of implementing the objective of the MPI profiling
interface. The actual requirements made of an implementation are those
detailed in the Requirements section above, the whole of the rest of
this chapter is only present as justification and discussion of the
logic for those requirements.
The examples below show one way in which an implementation could be
constructed to meet the requirements on a Unix system (there are
doubtless others
that
would be equally valid).
![]()
![]()
![]()
Up: Contents
Next: Logic of the Design
Previous: Requirements
Return to MPI-2.1 Standard Index
Return to MPI Forum Home Page
MPI-2.0 of July 1, 2008
HTML Generated on July 6, 2008