使用boost mpi编译问题:PMPI_Errhandler_set中的致命错误:无效的通信器

时间:2015-02-02 15:48:14

标签: linux boost installation mpi openmpi

我刚刚在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

0 个答案:

没有答案