[Mpi-forum] Did we screw up the const bindings in MPI-3?

Pavan Balaji balaji at mcs.anl.gov
Wed May 22 23:17:40 CDT 2013


All,

Some of our users complained that Tau doesn't work with the latest
version of mpich.  After some investigation we discovered that this was
an issue with the MPI-3 standard.  Specifically, we added const bindings
for many of the MPI functions.  The thinking in the Forum was that this
change is backward compatible since applications using MPI_Send don't
have to change at all.  However, this seems to be causing problems for
tools that redefine MPI functions.  Basically, a tool can no longer have
a function like this:

int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int
tag, MPI_Comm comm)
{
	/* Do magic */
	ret = PMPI_Send(...);
	/* Do some more magic */

	return ret;
}

The compiler will complain that this doesn't match the prototype in
mpi.h which is:

int MPI_Send(const void *buf, int count, MPI_Datatype datatype, int
dest, int tag, MPI_Comm comm);

Am I missing something here?  Are all tools now required to have an #if
MPI_VERSION >= 3 check?  Does this mean that all existing tools are now
broken for MPI-3 implementations?

 -- Pavan

-- 
Pavan Balaji
http://www.mcs.anl.gov/~balaji



More information about the mpi-forum mailing list