[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