<div dir="ltr">I think you are correct in your evaluation, though I also think that wasn't our intent. I think the intent (unless I'm forgetting a discussion) was to allow MPI_ERR_PENDING to be returned by MPI_RECV and let MPI_COMM_FAILURE_ACK cover both cases. Can anyone else confirm that this was the goal.<div>
<br></div><div>If that's the case, it's something we'll need to fix in the text.</div><div><br></div><div style>Thanks,</div><div>Wesley</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Mar 15, 2013 at 12:32 PM, David Solt <span dir="ltr"><<a href="mailto:dsolt@us.ibm.com" target="_blank">dsolt@us.ibm.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font face="sans-serif">Based on the proposal:</font>
<br>
<br><font face="sans-serif">MPI_Comm_failure_ack(blah, blah)</font>
<br>
<br><font face="CMR10">This local operation gives the users a way
to </font><font face="CMTI10">acknowledge </font><font face="CMR10">all
locally noticed failures on</font>
<br><font face="CMSS10">comm</font><font face="CMR10">. After
the call, unmatched </font><font face="CMSS10">MPI</font><font face="CMTT10">_</font><font face="CMSS10">ANY</font><font face="CMTT10">_</font><font face="CMSS10">SOURCE
</font><font face="CMR10">receptions that would have raised an</font>
<br><font face="CMR10">error code </font><font face="CMSS10">MPI</font><font face="CMTT10">_</font><font face="CMSS10">ERR</font><font face="CMTT10">_</font><font face="CMSS10">PENDING
</font><font face="CMR10">due to process failure (see Section </font><font color="blue" face="CMR10">17.2.2</font><font face="CMR10">)
proceed without</font>
<br><font face="CMR10">further reporting of errors due to those
acknowledged failures.</font>
<br>
<br><font face="CMR10">I think this clearly indicates that MPI_Recv
is uninfluenced by calls to MPI_Comm_failure_ack. Therefore, there
is no way to call MPI_Recv(MPI_ANY_SOURCE) and ignore failures reported
by MPI_Comm_failure_ack. </font>
<br>
<br><font face="CMR10">I believe the following code will NOT work
(i.e. after the first failure, the MPI_Recv will continuously fail):</font>
<br>
<br>
<br><font face="CMR10">MPI_Comm_size(intercomm, &size);</font>
<br><font face="CMR10">while (failures < size) {</font>
<br><font face="CMR10"> err =
MPI_Recv(blah, blah, MPI_ANY_SOURCE, intercomm, &status);</font>
<br><font face="CMR10"> if (err
== MPI_PROC_FAILED) {</font>
<br><font face="CMR10">
MPI_Comm_failure_ack(intercomm);</font>
<br><font face="CMR10">
MPI_Comm_failure_get_acked(intercomm, &group);</font>
<br><font face="CMR10">
MPI_Group_size(group, &failures);</font>
<br><font face="CMR10"> } else
{</font>
<br><font face="CMR10">
/* process received data */</font>
<br><font face="CMR10"> }</font>
<br><font face="CMR10">}</font>
<br>
<br><font face="CMR10">and has to be written as:</font>
<br>
<br><font face="CMR10">MPI_Comm_size(intercomm, &size);</font>
<br><font face="CMR10">while (failures < size) {</font>
<br>
<br><font face="CMR10"> if (request
== MPI_REQUEST_NULL) {</font>
<br><font face="CMR10">
err = MPI_Irecv(blah, blah, MPI_ANY_SOURCE,
intercomm, &request);</font>
<br><font face="CMR10"> }</font>
<br><font face="CMR10"> err =
MPI_Wait(&request, &status);</font>
<br>
<br><font face="CMR10"> if (err
== MPI_ERR_PENDING) {</font>
<br><font face="CMR10">
MPI_Comm_failure_ack(intercomm);</font>
<br><font face="CMR10">
MPI_Comm_failure_get_acked(intercomm, &group);</font>
<br><font face="CMR10">
MPI_Group_size(group, &failures);</font>
<br><font face="CMR10"> } else
{</font>
<br><font face="CMR10">
/* process received data */</font>
<br><font face="CMR10"> }</font>
<br><font face="CMR10">}</font>
<br>
<br><font face="CMR10">Am I correct in my thinking?</font>
<br><font face="CMR10">If so, was there a reason why MPI_Recv could
not also "obey" MPI_Comm_failure_ack calls? </font>
<br>
<br><font face="CMR10">Thanks,</font>
<br><font face="CMR10">Dave</font><br>_______________________________________________<br>
mpi3-ft mailing list<br>
<a href="mailto:mpi3-ft@lists.mpi-forum.org">mpi3-ft@lists.mpi-forum.org</a><br>
<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft</a><br></blockquote></div><br></div>