[Mpi3-rma] Conflicting PUT/GET accesses clarification

Dave Goodell goodell at mcs.anl.gov
Wed Apr 27 17:23:32 CDT 2011


On Apr 27, 2011, at 5:12 PM CDT, James Dinan wrote:

> Logically, I would think of this as two concurrent (conflicting) updates to the same location.  The MPI implementation could detect and avoid a problem.  The same goes for two conflicting puts; the MPI implementation can also detect and avoid the problem but we define it to be erroneous.
> 
> How is this defined for send/recv?  I think I looked it up once and found that it was an error in that case.

It's explicitly disallowed for receive operations (MPI-2.2 p.102):

----8<----
A datatype may specify overlapping entries. The use of such a datatype in a receive operation is erroneous. (This is erroneous even if the actual message received is short enough not to write any entry more than once.)
----8<----

And there's a similar passage for MPI_Reduce (MPI-2.2 p.164) disallowing this sort of thing in the recv buffer:

----8<----
Overlapping datatypes are permitted in “send” buffers. Overlapping datatypes in “re- ceive” buffers are erroneous and may give unpredictable results.
----8<----

There might be other instances of this sort of prohibition elsewhere in the standard, but I haven't looked for them.

-Dave





More information about the mpiwg-rma mailing list