Hello Jeff and MPI Users,

Yes, I know about the ISends. I do not want to have ISends for other reasons. 


The problem that bothers me is that I have one process waiting on MPI_Recv(...) 
and the other process on MPI_Ssend(...), but still both are blocked. 


This happens arbitrarily. At other times, these calls go through perfectly.

Also, I read the definition of MPI_Ssend(...) that you sent, but then it does 
not explain why both MPI_Ssend(...) and MPI_Recv(...) are blocked seemingly 
forever. 


I notice that such a block happens when MPI_Recv(...) is posted before 
MPI_Ssend(...).

Any ideas?

Thanks for your input already.


Best

Devendra



________________________________
From: Jeff Squyres <jsquy...@cisco.com>
To: devendra rai <rai.deven...@yahoo.co.uk>; Open MPI Users <us...@open-mpi.org>
Sent: Tuesday, 13 September 2011, 13:16
Subject: Re: [OMPI users] Question on MPI_Ssend

On Sep 13, 2011, at 5:02 AM, devendra rai wrote:

> I am using MPI_Ssend and a corresponding a MPI_Recv. I notice that whenever 
> MPI_Recv starts waiting firs, and then MPI_Ssend is posted, the MPI calls 
> just block. This, of course results in non-coherent application behavior. 

I'm not sure what you mean by "non-coherent application behavior."

Note that MPI_SSEND is a synchronous send, which, by definition, means that it 
won't complete until the matching receive has been posted.  In practice, this 
usually means that the receiver has started to receive (and sent an ACK back to 
the sender).  

If you want non-blocking behavior, you might want to investigate MPI_ISEND and 
MPI_IRECV.

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to