[Mpi3-rma] MPI-3 UNIFIED model clarification
balaji at mcs.anl.gov
Mon Jul 29 23:10:29 CDT 2013
On 07/29/2013 10:58 PM, Underwood, Keith D wrote:
>> MPI_Recv(P0, flag)
>> read a
> Can you point to the line in there that tells the architecture that
> the read of A is not touched by MPI_Recv? Let's say the data
> movement for MPI_Recv is done by a NIC or done by another core. How
> can the microarchitecture tell the difference?
'flag' and 'a' are two different buffers, so presumably reordering
MPI_RECV and 'read a' should be permitted.
Are you saying that the architecture cannot track that these two are
Or are you saying that the "poll completion queue" equivalent for the
network receive should already be doing a memory barrier for a correct
network stack anyway?
If it's the latter, then let's consider the following new example:
flag = 1;
flag = 0;
Remember MPI-3's nasty semantics of single-byte flags turning to
non-zero and staying there :-).
More information about the mpiwg-rma