<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>So that means local=remote right?<br><br>Sent from my iPhone</div><div><br>On Oct 18, 2013, at 3:11 PM, Jim Dinan <<a href="mailto:james.dinan@gmail.com">james.dinan@gmail.com</a>> wrote:<br>
<br></div><blockquote type="cite"><div><div dir="ltr">Hi Jeff,<div><br></div><div>IIRC the intended semantic was that local and remote completion are the same for gets, and read-modify-write atomics.</div><div><br></div><div>
 ~Jim.</div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Thu, Oct 17, 2013 at 2:09 PM, Jeff Hammond <span dir="ltr"><<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

>From Page 450 (MPI_WIN_FLUSH_LOCAL):<br>
<br>
"Locally completes at the origin all outstanding RMA operations<br>
initiated by the calling process to the target process specified by<br>
rank on the specified window. For example, after this routine<br>
completes, the user may reuse any buffers provided to put, get, or<br>
accumulate operations."<br>
<br>
The list of operations includes only those present from MPI-2.  This<br>
leads to ambiguity.  Because all MPI-2 functions were unidirectional,<br>
the reader is required to assume that the implication that any (hence,<br>
all) buffers can be reused implies round-trip i.e. remote completion<br>
of bidirectional operations like MPI_GET_ACCUMULATE,<br>
MPI_COMPARE_AND_SWAP and MPI_FETCH_AND_OP.<br>
<br>
On the other hand, if we meant to say that MPI_WIN_FLUSH_LOCAL only<br>
implies the reuse of the origin buffer and that MPI_WIN_FLUSH is<br>
required for (re)use of the result buffer, then that must be specified<br>
explicitly since it is not obvious and possible contradictory to the<br>
text that is currently present.<br>
<br>
It might be prudent to take advantage of this ambiguity as an<br>
opportunity to introduce the latter semantics since I can imagine<br>
cases where it is beneficial to separate outbound (i.e. local) and<br>
inbound (i.e. round-trip i.e. remote) completion of bidirectional<br>
operations.<br>
<br>
All of my use cases block on round-trip completion but I prefer to<br>
maximize flexibility of RMA synchronization semantics, which argues<br>
for the second of the two definitions noted above.<br>
<br>
Best,<br>
<br>
Jeff<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Jeff Hammond<br>
<a href="mailto:jeff.science@gmail.com">jeff.science@gmail.com</a><br>
_______________________________________________<br>
mpiwg-rma mailing list<br>
<a href="mailto:mpiwg-rma@lists.mpi-forum.org">mpiwg-rma@lists.mpi-forum.org</a><br>
<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma</a><br>
</font></span></blockquote></div><br></div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>mpiwg-rma mailing list</span><br><span><a href="mailto:mpiwg-rma@lists.mpi-forum.org">mpiwg-rma@lists.mpi-forum.org</a></span><br>
<span><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-rma</a></span></div></blockquote></body></html>