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 gmail.com> 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.l
am-mpi.org/MailArchives/lam/
>
_______________________________________________
This list is archived at http://www.l
am-mpi.org/MailArchives/lam/
|