[Mpi3-rma] MPI-3 UNIFIED model clarification

Pavan Balaji balaji at mcs.anl.gov
Fri Aug 2 19:09:48 CDT 2013

On 08/02/2013 04:45 PM, Underwood, Keith D wrote:
>>> At one point, them using their own memory fences was accepted as
>>> part of it, because it provides " the performance and "safety" of
>>> threads, localized to a window".  Those same people have to use
>>> memory fences for threads to work right too.
>> Then what were you trying to say here:
>>>>> Oh, I think we want it to say that they are identical.  I
>>>>> believe that is the only way to let the user actually use
>>>>> it.
>> "identical" means located at the same memory address, but the user
>> is responsible for memory ordering if they don't use MPI_Win_sync?
> Yes - identical means "landing in the same physical memory and kept
> coherent".  The entire discussion about memory ordering is about
> cores doing aggressive reordering of instructions across boundaries
> that are unfriendly to multithreaded coding.  The place where we
> actually have a problem in the spec may be the ordering definition;
> however, I don't think we have a problem.  Delivering in order is
> still necessary for some use cases and it is not the fault of the API
> that a core has reordered loads.  It is the job of the user to deal
> with the fact that their core reorders those loads - just like they
> would have to in multithreaded programming.

It is OK to say that the user can use platform-specific techniques 
outside of MPI, but we need an MPI mechanism to do that as well.  I 
think we are arguing that MPI_Win_sync should be that mechanism.  That 
way, a program written for SEPARATE will stay correct for UNIFIED as well.

  -- Pavan

Pavan Balaji

More information about the mpiwg-rma mailing list