<p dir="ltr">If the channel is unordered, a message after the iflush can increment the counter, while one before the iflush has not yet completed. So, the counter is not enough to mark a particular point in time.</p>
<p dir="ltr">An implementation of iflush as flush should still be valid, right? Just check if the counters are equal in test/wait. It won't be as fine grain as what the user wants, but it should also have no impact on programs that don't use iflush.</p>
<p dir="ltr">Although, the following program may never complete, so maybe the iflush as flush implementation is not valid.</p>
<p dir="ltr">Iflush(...)<br>
Do<br>
Test(req, &flag)<br>
If (!flag) Get(...)<br>
While(!flag)</p>
<p dir="ltr">Jim.</p>
<div class="gmail_quote">On Jun 15, 2013 8:42 PM, "Pavan Balaji" <<a href="mailto:balaji@mcs.anl.gov">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">
Hi Brian<br>
<br>
On 06/15/2013 11:24 AM, Barrett, Brian W wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
With the current semantics of flush, a valid implementation is a counter<br>
of number of operations started, another of operations completed, wait<br>
until they're equal. On an unordered channel (and acks are usually on<br>
an unordered channel), this mode won't work and you either have to have<br>
multiple counters or start tracking events in some per-event way,<br>
neither of which are going to be as performant.<br>
</blockquote>
<br>
I think this model with a global counter will still work. The IFLUSH request object will need to know what the counter needs to be to mark this request as complete. So when there's a test/wait on this request, you compare this with the global counter.<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>
______________________________<u></u>_________________<br>
mpi3-rma mailing list<br>
<a href="mailto:mpi3-rma@lists.mpi-forum.org" target="_blank">mpi3-rma@lists.mpi-forum.org</a><br>
<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-rma" target="_blank">http://lists.mpi-forum.org/<u></u>mailman/listinfo.cgi/mpi3-rma</a><br>
</blockquote></div>