If I am using lamd rpi and the transmitter's Bsend completes, is the
message guaranteed to be received at the receiver, provided the
receiver has posted a MPI_Irecv and is spinning in a loop that is
calling MPI_Test ? Please note, that after the Bsend, the transmitter
cannot call any mpi function unless the receiver receives the data
that was sent - so there should be no mpi progress from the
transmitter side after the Bsend.
When I run this with what I think is the TCP rpi, my transmitter Bsend
completes, my receiver Irecv completes an earlier Bsend (because I
posted fewer Irecvs on the receiver than Bsends on the transmitter)
and then although I repeatedly call Test on a newly posted MPI_Irecv,
I do not get any data that has been buffered by the transmitter. My
suspicion is that the data is locally buffered at the transmitter side
and since the transmitter is not making any MPI progress, we are
deadlocked.
Thanks,
Bodi
|