Boost.MPI 1.43.0 and openmpi 1.4.2 problems
Hi, I'm new to boost and openmpi. I'm on a Mac installed the newest version of openmpi through "port" and compiled boost by myself. There is also an openmpi version coming with my Mac in version 1.2.8. I tried to compile and run a small sample but ran into different problems. So the following example won't work for me with openmpi 1.4.2 (through port) but with openmpi 1.2.8: #include <boost/mpi.hpp> #include <iostream> #include <string> #include <boost/serialization/string.hpp> namespace mpi = boost::mpi; int main(int argc, char* argv[]) { mpi::environment env(argc, argv); mpi::communicator world; if (world.rank() == 0) { world.send(1, 0, std::string("Hello")); std::string msg; world.recv(1, 1, msg); std::cout << msg << "!" << std::endl; } else { std::string msg; world.recv(0, 0, msg); std::cout << msg << ", "; std::cout.flush(); world.send(0, 1, std::string("world")); } return 0; } I compiled with (1.4.2): openmpic++ boost_mpi_test.cpp -lboost_mpi -lboost_serialization -o boost_mpi_test Running that test says: openmpirun -np 2 boost_mpi_test *** The MPI_Pack_size() function was called before MPI_INIT was invoked. *** This is disallowed by the MPI standard. *** Your MPI job will now abort. [pillepalleben:54081] Abort before MPI_INIT completed successfully; not able to guarantee that all other processes were killed! *** The MPI_Pack_size() function was called before MPI_INIT was invoked. *** This is disallowed by the MPI standard. *** Your MPI job will now abort. [pillepalleben:54082] Abort before MPI_INIT completed successfully; not able to guarantee that all other processes were killed! Compiling with (1.2.8): mpic++ boost_mpi_test.cpp -lboost_mpi -lboost_serialization -o boost_mpi_test While the test runs fine: mpirun -np 2 boost_mpi_test Hello, world! So shall I use 1.2.8? Why I'm running in those issues? Thanks in advance, ben
participants (1)
-
Benjamin Behringer