[mpiwg-tools] Profiling for MPI_SIZEOF?

Jeff Squyres (jsquyres) jsquyres at cisco.com
Thu May 15 13:42:41 CDT 2014

Question for the Fortran and Tools WGs: How does a tool intercept calls to the Fortran-only MPI_SIZEOF function?  (MPI-3.0 p621)

I ask for the following reasons:

1. Unlike all other MPI functions, this function is keyed off the *type* of the 1st argument (not the *value* of the first argument).

2. Without support for TYPE(*), DIMENSION(..) (which no compiler supports yet), an MPI implementation has to provide N overloaded versions of MPI_SIZEOF to be able to determine the type of the first argument.

3. However, unlike how we specified the Fortran routine names in the MPI-3.0 errata so that they could be intercepted by PMPI, there are no specified specific subroutine names for the overloaded MPI_SIZEOF routines.

In reality, I'm assuming no tool will ever care about intercepting MPI_SIZEOF (at least, they haven't complained in the several years that Open MPI/MPICH have provided it).  But it's an inconsistency in the standard.

I see two obvious solutions -- perhaps there are more:

1. Define that MPI_SIZEOF is not able to be profiled.
2. For compilers that do not support TYPE(*), DIMENSION(..), define some kind of pattern of specific procedure names for the overloaded instances of MPI_SIZEOF.

I'm in favor of #1.


Jeff Squyres
jsquyres at cisco.com
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/

More information about the mpiwg-tools mailing list