Boost logo

Boost Users :

Subject: [Boost-users] [mpi/serialization] Potential bug or just library misunderstanding?
From: Tim Jacobs (tjacobs2_at_[hidden])
Date: 2011-09-30 11:18:42


I'm not sure why the following test-class produces this error: "MPI_Recv:
MPI_ERR_TRUNCATE: message truncated"

If the std::map has only a single element (ie I remove one of the
test[].push_back() lines) the error does not occur. Can someone verify that
this is indeed a bug and not just novice misuse of the library?

Thanks,
Tim

#include <boost/mpi.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/serialization/map.hpp>

int
main( int argc, char * argv [] )
{
  boost::mpi::environment env(argc, argv);
  boost::mpi::communicator world;

  if(world.rank()==0){
      std::map<int, std::vector<std::string> > test;
      test[1].push_back("FOO");
      test[50].push_back("BAR");
      world.send(1, 1, boost::mpi::skeleton(test));
      world.send(1, 1, boost::mpi::get_content(test));
      std::cout << "sent" << std::endl;
  }
  else{
      std::map<int, std::vector<std::string> > test;
      world.recv(0,1,boost::mpi::skeleton(test));
      world.recv(0,1,boost::mpi::get_content(test));
  }
}



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