323. Requirements

PreviousUpNext
Up: Profiling Interface Next: Discussion Previous: Profiling Interface

To meet the requirements for the MPI profiling interface, an implementation of the MPI functions must

    1. provide a mechanism through which all of the MPI defined functions, except those allowed as macros (See Section Functions and Macros ), may be accessed with a name shift. This requires, in C and Fortran, an alternate entry point name, with the prefix PMPI_ for each MPI function in each provided language binding and language support method. For routines implemented as macros, it is still required that the PMPI_ version be supplied and work as expected, but it is not possible to replace at link time the MPI_ version with a user-defined version.

    For Fortran, the different support methods cause several specific procedure names. Therefore, several profiling routines (with these specific procedure names) are needed for each Fortran MPI routine, as described in Section Interface Specifications, Procedure Names, and the Profiling Interface .


    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 economize 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.

    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.


    5. provide a no-op routine MPI_PCONTROL in the MPI library.


PreviousUpNext
Up: Profiling Interface Next: Discussion Previous: Profiling Interface


Return to MPI-3.1 Standard Index
Return to MPI Forum Home Page

(Unofficial) MPI-3.1 of June 4, 2015
HTML Generated on June 4, 2015