<div dir="ltr"><div>It seems like there are two possible semantics for which operations are complete by a call to MPI_Win_iflush:<br></div><div><br></div><div>(1) Completes all operations issued by the origin process on the given window before MPI_Win_iflush was called.</div>
<div>(2) Completes all operations issued by the origin process on the given window before MPI_Win_iflush completed.</div><div><br></div><div>So far, we've just been looking at #1, but I think that #2 is worth considering.  Option #2 allows an implementation that just checks if the counters are equal.  This avoids the issue where #1 can't be implemented in terms of #2, because issuing an unbounded number of operations while testing on the iflush request can cause the iflush to not complete indefinitely.</div>
<div><br></div><div>Option #2 does not directly provide the functionality that Jeff was looking for, but this could be implemented using two windows.  Issue a bunch of operations on win1 and iflush on win2, when win2 has been flushed, switch to issuing operations on win2 and iflushing win1.</div>
<div><br></div><div style> ~Jim.</div><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 17, 2013 at 7:38 AM, Jim Dinan <span dir="ltr"><<a href="mailto:james.dinan@gmail.com" target="_blank">james.dinan@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Sorry, I should have been more specific.  An implementation of iflush that waits for the completion of all messages should be valid.  Such an implementation would compare counters and return true if they are the same.  This implementation could have the issue I mentioned in the previous message, where the user continuously issuing operations can prevent iflush from completing.</p>
<span class="HOEnZb"><font color="#888888">

<p dir="ltr">Jim.</p></font></span><div class="HOEnZb"><div class="h5">
<div class="gmail_quote">On Jun 16, 2013 10:13 AM, "Pavan Balaji" <<a href="mailto:balaji@mcs.anl.gov" target="_blank">balaji@mcs.anl.gov</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
On 06/16/2013 10:02 AM, Jim Dinan wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
If the channel is unordered, a message after the iflush can increment<br>
the counter, while one before the iflush has not yet completed.  So, the<br>
counter is not enough to mark a particular point in time.<br>
</blockquote>
<br>
Ah, good point.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
An implementation of iflush as flush should still be valid, right?  Just<br>
</blockquote>
<br>
No.  You cannot do this if the user only uses TEST.<br>
<br>
MPI_WIN_IFLUSH(&req);<br>
while (MPI_TEST(req) is not done);<br>
<br>
 -- Pavan<br>
<br>
-- <br>
Pavan Balaji<br>
<a href="http://www.mcs.anl.gov/~balaji" target="_blank">http://www.mcs.anl.gov/~balaji</a><br>
</blockquote></div>
</div></div></blockquote></div><br></div></div></div>