Boost logo

Boost Users :

Subject: Re: [Boost-users] boostMPI asychronous communication
From: Riccardo Murri (riccardo.murri_at_[hidden])
Date: 2010-06-28 10:46:56


Hi Jack,

On Mon, Jun 28, 2010 at 4:00 PM, Jack Bryan <dtustudy68_at_[hidden]> wrote:
> MPI_irecv() ;
> do other works;
> MPI_wait();
> But, my message receiver is much slower than sender.
> when the receiver is doing its local  works, the sender has sent out their
> messages. but at this time,
> the receiver is very busy doing its local work and cannot post MPI_irecv to
> get the messages from
> senders.

If you know what messages the receiver is going to receive, you can
post your irecv() *before* starting the compute-intensive loop.

If you can't post the irecv() before the busy loop, MPI will buffer
messages for you, up to some implementation-defined limit: "Send of
all modes [...] can be started whether a matching receive has been
posted or not [...] If the call causes some system resources to be
exhausted, then it will fail and return an error code." (MPI 2.1
spec, sec 3.7, page 48 of the printed edition)

You might be able to get better help on an MPI-specific forum.

Best regards,
Riccardo


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net