Will MPI_IProbe going to work here?  I don’t want to block my thread on a receive. The client can be busy arbitrary amount of time and the server-thread can not be blocked on a receive.

 

Thanks,

Hirak

 

From: Roy, Hirak
Sent: Tuesday, October 21, 2014 9:37 AM
To: discuss@mpich.org
Subject: Re : MPI process killed and SIGUSR1

 

Hi Wesley,
 
So if I do the following from the server side : 
 
MPI_Irecv (&buf, 1, MPI_INT, 0, MPI_TAG_SANITY, clientCom, &req);
MPI_Wait(&req, &stat);
 
 
 
Now the client is killed. However, the wait does not terminate.

Thanks,
Hirak
 
 
 
It's not guaranteed that you will receive an error from a send (of any kind other than ssend). The reason is that the implementation can buffer the message internally and return to the application before the message is actually transferred. You will definitely receive an error related to any kind of receive, but sends are less reliable in that sense.
 
Thanks,
Wesley
 
 
 
On Oct 20, 2014, at 7:53 AM, Roy, Hirak <Hirak_Roy at mentor.com<mailto:Hirak_Roy at mentor.com>> wrote:
 
 
Hi Wesley,
 
 
 
Suppose my server-client connection is setup using MPI_Comm_accept/MPI_Comm_connect.
 
Now one of the clients dies.
 
If the server sends a non-blocking message to the dead client by MPI_Isend, will MPI_Wait guaranteed to return Error code?
 
 
 
Thanks,
 
Hirak
 
 
 
 
 
 
 
 
 
>You will only receive the notification if you use a communicating call. That call doesn't do any communication so it won't return the error.