Re: [Mpi3-rma] [EXTERNAL] Re: request-based ops
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 http://www.mcs.anl.gov/~balaji
participants (1)
-
Pavan Balaji