At the receiver, MPI ordering is only within a specific (source_rank, tag, communicator) tuple.
So if you send: M1 (source_rank=A, tag=T1, comm=foo) M2 (source_rank=A, tag=T2, comm=foo) Then those have 2 different tuples, and can be probed/received in a different order in which they were sent. However, if your tags were the same for M1 and M2, then they would have to be probed/received in order. On Sep 22, 2012, at 12:32 AM, devendra rai wrote: > Hello, > > I believe my understanding of MPI_Probe is not correct. Here's what I have as > a setup: > > Two MPI processes, A and B. Process A sends a large message, M1 using tag T1, > and a small message, M2 using tag T2. The recepient of both messages is B. > > The order of sending the messages is M1 and then M2. > > The process B however executes MPI_Probe to test if the message with tag T2 > is available. B will accept M1 after it has received M2 first. > > I am under the impression that using information gained from MPI_Probe, I can > choose not to receive message M1, and instead look for M2. > > However, I see that M2 is never received by B (although A confirms that both > M1 and M2 have been sent). > > I am little confused. Can someone explain why B cannot receive M2? At least, > does MPI allow receiving messages in the order that I have just described? > > Thanks a lot. > > Devendra Rai. > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/