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.

Reply via email to