[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