I'm going to echo what you've already heard here:  it is impossible for a process to receive a message that was sent to a different process.  A sender must specify a unique destination.  No process other than the destination process will see that message.

In what you write below, why do you think you are receiving a message that was intended for a different destination?  Maybe you can put together a short program that illustrates your question.

On 7/15/2011 9:49 AM, Mudassar Majeed wrote:

Yes, processes receive messages that were not sent to them. I am receiving the message with the following call

MPI_Recv(&recv_packet, 1, loadDatatype, MPI_ANY_SOURCE, MPI_TAG_LOAD, comm, &status);

and that was sent using the following call,

MPI_Ssend(&load_packet, 1, loadDatatype, rec_rank, MPI_TAG_LOAD, comm);

What problem it can have ?. All the parameters are correct, I have seen them by printf.  What I am thinking is that, the receive is done with MPI_ANY_SOURCE, so the process is getting any message (from any source). What should be done so that only that message is captured that had the destination as this process.