[mpiwg-rma] ambiguity in MPI_WIN_FLUSH_LOCAL and completion of bidirectional operations

Jeff Hammond jeff.science at gmail.com
Thu Oct 17 13:09:20 CDT 2013


>From Page 450 (MPI_WIN_FLUSH_LOCAL):

"Locally completes at the origin all outstanding RMA operations
initiated by the calling process to the target process specified by
rank on the specified window. For example, after this routine
completes, the user may reuse any buffers provided to put, get, or
accumulate operations."

The list of operations includes only those present from MPI-2.  This
leads to ambiguity.  Because all MPI-2 functions were unidirectional,
the reader is required to assume that the implication that any (hence,
all) buffers can be reused implies round-trip i.e. remote completion
of bidirectional operations like MPI_GET_ACCUMULATE,
MPI_COMPARE_AND_SWAP and MPI_FETCH_AND_OP.

On the other hand, if we meant to say that MPI_WIN_FLUSH_LOCAL only
implies the reuse of the origin buffer and that MPI_WIN_FLUSH is
required for (re)use of the result buffer, then that must be specified
explicitly since it is not obvious and possible contradictory to the
text that is currently present.

It might be prudent to take advantage of this ambiguity as an
opportunity to introduce the latter semantics since I can imagine
cases where it is beneficial to separate outbound (i.e. local) and
inbound (i.e. round-trip i.e. remote) completion of bidirectional
operations.

All of my use cases block on round-trip completion but I prefer to
maximize flexibility of RMA synchronization semantics, which argues
for the second of the two definitions noted above.

Best,

Jeff

-- 
Jeff Hammond
jeff.science at gmail.com



More information about the mpiwg-rma mailing list