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
