Hello MPI Forum, Jeff

Well, the problem is not with incorrect arguments with MPI_Ssend(...) and/or MPI_Recv(...).  I confirmed this. Also, if there were any obvious programming and logical errors, I would never have any successful run. In fact, I am having some  runs which go through successfully.

The problem seems to be random, and therefore, I am finding it hard to debug. I am using Open MPI v. 1.4.3, on Linux kernel 2.6.37.6-0.7.

I am also using tags, in addition to normal sender node and receiver nodes. I am using integers for tags, and none of the tags are more than 1000. I am also running MPI_Ssends and MPI_Recv within pthreads, and I believe that it should be okay.

So, the question is, am I stumbling across a bug, or an incorrect MPI installation?

Thanks a lot.

Best

Devendra


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

On Sep 13, 2011, at 8:41 AM, devendra rai wrote:

> 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.

Oh, they're blocked *forever*!  Sorry; I didn't get that from your prior description -- I thought you just wanted non-blocking instead of blocking.

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

It doesn't matter if the receive is posted before the send or the other way around.

When blocking sends/receives block forever, it usually means that there's a mismatch in the communicator, tag, or src/dest arguments between the two.

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