To meet the MPI profiling interface, an implementation of the MPI functions must
This
separability
is necessary to allow a separate profiling library to be
correctly implemented, since (at least with Unix linker semantics) the
profiling library must contain these wrapper functions if it is to
perform as expected. This requirement allows the person who builds the
profiling library to extract these functions from the original MPI
library and add them into the profiling library without bringing along
any other unnecessary code.
2. ensure that those MPI functions
that
are not replaced may still be
linked into an executable image without causing name clashes.
3. document the implementation of different language bindings of the MPI
interface if they are layered on top of each other, so that the
profiler developer knows whether she must implement the profile
interface for each binding, or can economise by implementing it only
for the lowest level routines.
4. where the implementation of different language bindings is done
through a layered approach (e.g. the Fortran binding is a set of
``wrapper'' functions
that
call the C implementation), ensure that
these wrapper functions are separable from the rest of the library.
5. provide a no-op routine MPI_PCONTROL in the MPI library.