Hello, everyone,
I'm debugging my parallel application under LAM 6.5.9/MPI 2 C++/, Redhat 7.3
Beowulf cluster.
The problem seems to be that some "later" messages are received prior to
the "previous" sent messages.
Here's the structure of my code:
Sender processors:
... MPI_Isend(...)/MPI_Send(...) with various tag...
Recver processors:
...
MPI_Iprobe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &rc,
&status);
if (rc) {
MPI_Recv(&msg, sizeof(msg), MPI_BYTE, status.MPI_SOURCE,
status.MPI_TAG, MPI_COMM_WORLD, &status1);
...
}
My question is: is the First-sent-First-Received can be guaranteed?
For example, if one processor sends out message to other processor using
MPI_Isend or MPI_Send or both, in the sequence of TAG1, TAG2, TAG1, TAG3, TAG2.
Can it be guaranteed that, in the receiver side, the sequence is still TAG1,
TAG2, TAG1, TAG3, TAG2?
Thanks
Hua Ye
-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/
|