我最近安装了 Intel 的 Cluster Studio,并且正在测试 IMPI。当我尝试使用 运行一个简单的 hello world 程序mpirun
时,这个过程需要很长时间,我必须自己结束它。我使用了以下代码:
#include <mpi.h>
#include <iostream>
#include <stdlib.h>
int main(int argc, char *argv[]) {
MPI::Init(argc, argv);
int rank = MPI::COMM_WORLD.Get_rank();
int size = MPI::COMM_WORLD.Get_size();
std::cout << "Returned: " << system("sleep 2") << " ";
std::cout << "Hello World! I am " << rank << " of " << size <<
std::endl;
MPI::Finalize();
return (0);
}
我用mpiicpc main.cpp -o main
. 这是我添加-show
选项时的输出:
icpc main.cpp -o main -I/opt/intel/impi/4.1.1.036/intel64/include -L/opt/intel/impi/4.1.1.036/intel64/lib -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker /opt/intel/impi/4.1.1.036/intel64/lib -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/4.1 -lmpigc4 -lmpigf -lmpi -lmpigi -ldl -lrt -lpthread
我用mpirun -np 4 main
.
附加信息:
$which mpirun
/opt/intel/impi/4.1.1.036/intel64/bin/mpirun
$mpiicpc --version
icpc (ICC) 14.0.0 20130728
更新:我也尝试使用g++
而不是编译它icpc
。没运气。我的猜测是 MPI 运行时有问题,但我找不到。调试不起作用。我认为程序一开始并没有初始化。