我刚刚在guide之后安装了boost 1.56.0和boost.mpi。然而, 执行Boost.mpi tutorial
的第一个示例时出错#include <boost/mpi/environment.hpp>
#include <boost/mpi/communicator.hpp>
#include <iostream>
namespace mpi = boost::mpi;
int main(int argc, char* argv[])
{
mpi::environment env(argc, argv);
mpi::communicator world;
std::cout << "I am process " << world.rank() << " of " << world.size()
<< "." << std::endl;
return 0;
}
我使用命令
使用mpic++
在linux上成功编译了以前的程序
mpic++ test.cpp -otest_mpi -lboost_mpi -lboost_serialization -lboost_system -lboost_filesystem -lboost_iostreams -lboost_graph_parallel
然后,在做
时 mpirun -np 4 ./test_mpi
我收到以下错误:
Fatal error in PMPI_Errhandler_set: invalid communicator, error stack:
PMPI_Errhandler_set(118): MPI_Errhandler_set(comm=0xb7151be0, errh=0xb71822c0) failed
PMPI_Errhandler_set(70): Invalid communicator
我正在开发一个安装了openmpi和mpich的虚拟机。我在其他地方读到这个问题可能是由两个编译器之间的冲突引起的。我还验证了MPI(没有提升)正常运行&#34; Hello,World!&#34;脚本。
您是否知道导致错误的原因以及如何解决?
提前致谢,
主席Pierpaolo