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.