On Fri, Feb 21, 2014 at 11:49 AM, Walter Woods <[email protected]>wrote:

> In Roy's case, especially the test file, the problem is having multiple
> irecv's happening.  Lookat the underlying request::handle_serialized_irecv
> implementation in boost/mpi/communicator.hpp - one recv is accomplished
> through several MPI_IRecv requests issued in sequence.  If you have several
> irecvs running at once, then one is likely to get the other's data as its
> length.
>

Thanks for your reply and looking at the boost::mpi source - I haven't got
that far. I understand what you're saying, but the first few paragraphs of
this page:

 http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html/node41.html

seems to indicate that MPI guarantees that sends and recvs are kept ordered
on a single-threaded process not using MPI_ANY_SOURCE. If that is the case
then boost::mpi should as well.


> In other words, if you want to receive multiple messages in the same tag,
> be sure to only have one IRecv() with that tag running at a time.  Data may
> only be transferred serially (not in parallel) over a single tag anyhow.
>

I did change my development code to do this.

Hope that helps,
>
Walt
>

It does, thanks!

Roy
_______________________________________________
Boost-mpi mailing list
[email protected]
http://lists.boost.org/mailman/listinfo.cgi/boost-mpi

Reply via email to