<font size=2 face="sans-serif">Oh good.  </font>
<br>
<br><font size=2 face="sans-serif">I have another interesting issue:</font>
<br>
<br><font size=2 face="sans-serif">Rank (0)        
               
       Rank (1)        
               Rank
(2)</font>
<br>
<br><font size=2 face="sans-serif">MPI_Irecv(.., ANYSOURCE, MPI_ANY_TAG,
comm=C)</font>
<br><font size=2 face="sans-serif">         
               
              !!!!FAIL!!!!</font>
<br><font size=2 face="sans-serif">MPI_Wait(req, status) -- > return
MPI_ERR_PENDING</font>
<br><font size=2 face="sans-serif">         
               
               
              </font>
<br><font size=2 face="sans-serif">         
               
               
               
      MPI_Send(..., 0, 0, comm=C)    
               
               
   </font>
<br><font size=2 face="sans-serif">         
      </font>
<br><font size=2 face="sans-serif">MPI_Recv(..., 2, MPI_ANY_TAG, comm=C);</font>
<br>
<br>
<br><font size=2 face="sans-serif">Should the MPI_Recv return or should
it block because the pending Irecv could match the MPI_Send from rank 2
and therefore "queues" on it?</font>
<br>
<br><font size=2 face="sans-serif">I can see arguments for both cases.</font>
<br>
<br><font size=2 face="sans-serif">Thanks,<br>
Dave</font>
<br>
<br>
<br>
<br>
<br>
<br>
<br><font size=1 color=#5f5f5f face="sans-serif">From:      
 </font><font size=1 face="sans-serif">Aurélien Bouteiller
<bouteill@icl.utk.edu></font>
<br><font size=1 color=#5f5f5f face="sans-serif">To:      
 </font><font size=1 face="sans-serif">"MPI 3.0 Fault
Tolerance and Dynamic Process Control working Group" <mpi3-ft@lists.mpi-forum.org>,
</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Date:      
 </font><font size=1 face="sans-serif">03/15/2013 01:07 PM</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Subject:    
   </font><font size=1 face="sans-serif">Re: [Mpi3-ft]
MPI_Recv + MPI_Comm_failure_ack</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Sent by:    
   </font><font size=1 face="sans-serif">mpi3-ft-bounces@lists.mpi-forum.org</font>
<br>
<hr noshade>
<br>
<br>
<br><tt><font size=2>The intent was to return ERR_PROC_FAILED (nothing
is pending) and the Ack should also stop this return of PROC_FAILED for
blocking ANY_SOURCE. <br>
<br>
Good catch Dave! <br>
<br>
Aurelien<br>
<br>
Le 15 mars 2013 à 14:01, Wesley Bland <wbland@icl.utk.edu> a écrit
:<br>
<br>
> You're right. A blocking call shouldn't return MPI_ERR_PENDING when
there is no request to be pending. I did think we'd covered this some other
way. It's definitely the intent for both versions of receive to be able
to ignore acknowledged failures.<br>
> <br>
> <br>
> On Fri, Mar 15, 2013 at 1:53 PM, David Solt <dsolt@us.ibm.com>
wrote:<br>
> I'm pretty sure the intent was that MPI_Recv should NOT return MPI_ERR_PENDING
as there is no request on which the error can be pending, but I don't know
if much thought was given to allowing MPI_Recv to ignore acknowledge ranks.
<br>
> Dave <br>
> <br>
> <br>
> <br>
> From:        Wesley Bland <wbland@icl.utk.edu>
<br>
> To:        "MPI 3.0 Fault Tolerance and Dynamic
Process Control working Group" <mpi3-ft@lists.mpi-forum.org>,
<br>
> Date:        03/15/2013 12:45 PM <br>
> Subject:        Re: [Mpi3-ft] MPI_Recv + MPI_Comm_failure_ack
<br>
> Sent by:        mpi3-ft-bounces@lists.mpi-forum.org
<br>
> <br>
> <br>
> <br>
> 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. <br>
> <br>
> If that's the case, it's something we'll need to fix in the text.
<br>
> <br>
> Thanks, <br>
> Wesley <br>
> <br>
> <br>
> On Fri, Mar 15, 2013 at 12:32 PM, David Solt <dsolt@us.ibm.com>
wrote: <br>
> Based on the proposal: <br>
> <br>
> MPI_Comm_failure_ack(blah, blah) <br>
> <br>
> This local operation gives the users a way to acknowledge all locally
noticed failures on <br>
> comm. After the call, unmatched MPI_ANY_SOURCE receptions that would
have raised an <br>
> error code MPI_ERR_PENDING due to process failure (see Section 17.2.2)
proceed without <br>
> further reporting of errors due to those acknowledged failures. <br>
> <br>
> 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.   <br>
> <br>
> I believe the following code will NOT work (i.e. after the first failure,
the MPI_Recv will continuously fail): <br>
> <br>
> <br>
> MPI_Comm_size(intercomm, &size); <br>
> while (failures < size) { <br>
>         err = MPI_Recv(blah, blah, MPI_ANY_SOURCE,
intercomm, &status); <br>
>         if (err == MPI_PROC_FAILED) { <br>
>                 MPI_Comm_failure_ack(intercomm);
<br>
>                 MPI_Comm_failure_get_acked(intercomm,
&group); <br>
>                 MPI_Group_size(group,
&failures); <br>
>         } else { <br>
>                 /* process
received data */ <br>
>         } <br>
> } <br>
> <br>
> and has to be written as: <br>
> <br>
> MPI_Comm_size(intercomm, &size); <br>
> while (failures < size) { <br>
> <br>
>         if (request == MPI_REQUEST_NULL) { <br>
>                 err = MPI_Irecv(blah,
blah, MPI_ANY_SOURCE, intercomm, &request); <br>
>         } <br>
>         err = MPI_Wait(&request, &status);
<br>
> <br>
>         if (err == MPI_ERR_PENDING) { <br>
>                 MPI_Comm_failure_ack(intercomm);
<br>
>                 MPI_Comm_failure_get_acked(intercomm,
&group); <br>
>                 MPI_Group_size(group,
&failures); <br>
>         } else { <br>
>                 /* process
received data */ <br>
>         } <br>
> } <br>
> <br>
> Am I correct in my thinking? <br>
> If so, was there a reason why MPI_Recv could not also "obey"
MPI_Comm_failure_ack calls? <br>
> <br>
> Thanks, <br>
> Dave<br>
> _______________________________________________<br>
> mpi3-ft mailing list<br>
> mpi3-ft@lists.mpi-forum.org<br>
> </font></tt><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft"><tt><font size=2>http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft</font></tt></a><tt><font size=2>
<br>
> _______________________________________________<br>
> mpi3-ft mailing list<br>
> mpi3-ft@lists.mpi-forum.org<br>
> </font></tt><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft"><tt><font size=2>http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft</font></tt></a><tt><font size=2>
<br>
> <br>
> _______________________________________________<br>
> mpi3-ft mailing list<br>
> mpi3-ft@lists.mpi-forum.org<br>
> </font></tt><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft"><tt><font size=2>http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft</font></tt></a><tt><font size=2><br>
> <br>
> _______________________________________________<br>
> mpi3-ft mailing list<br>
> mpi3-ft@lists.mpi-forum.org<br>
> </font></tt><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft"><tt><font size=2>http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft</font></tt></a><tt><font size=2><br>
<br>
--<br>
* Dr. Aurélien Bouteiller<br>
* Researcher at Innovative Computing Laboratory<br>
* University of Tennessee<br>
* 1122 Volunteer Boulevard, suite 309b<br>
* Knoxville, TN 37996<br>
* 865 974 9375<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
mpi3-ft mailing list<br>
mpi3-ft@lists.mpi-forum.org<br>
</font></tt><a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft"><tt><font size=2>http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-ft</font></tt></a><tt><font size=2><br>
<br>
</font></tt>
<br>