[Mpi3-rma] [EXTERNAL] Re: request-based ops

Pavan Balaji balaji at mcs.anl.gov
Sat Jun 15 20:44:03 CDT 2013

On 06/15/2013 12:42 PM, Jeff Hammond wrote:
> Related to this, I was wondering about the semantics of IWIN_FLUSH
> when ordering was disabled for a window (i.e. accumulate_ordering="").
> If I do the following, can I make any assumptions about the ordering
> of the two accumulates?
> MPI_Win win_with_unordered_accumulates;
> MPI_Request req1, req2;
> MPI_Accumulate(target=1,win=win_with_unordered_accumulates);
> MPI_Iwin_flush(target=1,win=win_with_unordered_accumulates,request=req1);
> MPI_Accumulate(win=win_with_unordered_accumulates);
> MPI_Iwin_flush(target=1,win=win_with_unordered_accumulates,request=req2);
> MPI_Waitall(requests={req1,req2});
> The Waitall is not required to act on the requests in order, right?
> Thus is req2 is completed first, then it flushes both Accumulates
> simultaneously, hence does not ordering them.  The completion of req1
> is then trivial and have no effect on ordering Accumulate 1 before
> Accumulate 2.

Correct.  No additional ordering constraints of completion will be added 
to WAITALL.  Like with any requests, they can complete in whatever order.

  -- Pavan

Pavan Balaji

More information about the mpiwg-rma mailing list