[Mpi-forum] Significant discussion point with Ticket 269

Adam T. Moody moody20 at llnl.gov
Wed Mar 16 19:47:02 CDT 2011

The displacements in the new w functions are not semantically the same 
as in Alltoallw.  See p 146, lines 41-44 vs p 169, line 26.  In 
alltoallw, the displacements are given in number of bytes from the start 
of the buffer, but for the new functions, they are given as an integer 
number of extents of the corresponding datatype.

First, we should be consistent with alltoallw or otherwise use a suffix 
other than 'w'.

Second, specifying the displacement in terms of datatype extents 
restricts some codes from using these functions.  For example, in 
gatherw, what if the root needs to receive a 2-byte datatype starting at 
byte position 1 in its receive buffer?  I don't think this can be done 
under the current definition.

Third, if we decide to define the displacement in bytes, as alltoallw 
does, then we should really think about making the displacement datatype 
an MPI_Aint, or perhaps even MPI_Count.  Using an int datatype will lead 
to other problems.

More information about the mpi-forum mailing list