Sorry - please ignore my question. I was confused by the following:
Transmitter Receiver
Bsend
Bsend
Bsend
Loop and MPI_Irecv
The loop would actually loop 3 times and receive the 3 outstanding
sends. However, for a large number of messages, the receiver does not
receive all the messages because MPI did not ever send them from the
transmitter - because the large number of messages would probably
overflow buffers at the receiver.
Bodi
On Dec 4, 2007 9:07 PM, Bodi Debnath <bodi.debnath_at_[hidden]> wrote:
> 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
> _______________________________________________
> This list is archived at http://www.lam-mpi.org/MailArchives/lam/
>
|