[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...

Keith




More information about the mpiwg-rma mailing list