[Mpi3-rma] Memory barriers in MPI_WIN_LOCK_ALL mode

Underwood, Keith D keith.d.underwood at intel.com
Tue Oct 30 09:13:51 CDT 2012

> > Yes, win_synch is only needed in the separate model, which would then
> > do a memory barrier. The MPI library has to guarantee that there is no
> > inconsistency between public and private copy in the unified model (or
> > it cannot claim that it supports unified).
> I'm not sure any architecture can do this without internally adding memory
> barriers in a lot of MPI operations other than the usual FLUSH/SYNC/UNLOCK
> type of operations.
> Note that the MPI standard only says that in the UNIFIED model, the data will
> "eventually" appear (pg. 454, bullet item 6).  No guarantees that the data
> actually is visible for load operations immediately after a flush.

Ok, but, the kind of thing that delays that visibility (e.g. the uncertainty between when a posted write starts over PCIExpress and when it is known to be globally visible) is completely unaffected by a memory barrier.  Memory barrier until your heart is content and that thing could still be getting retried across a PCIExpress link and the process (and the NIC and other side of the link and just about anything else) would have no way to know...


More information about the mpiwg-rma mailing list