无法运行简单的 mpi 程序
Can't run simple mpi program
我最近安装了Intel的Cluster Studio,并且正在测试IMPI。当我尝试使用mpirun
运行一个简单的hello world程序时,这个过程会持续很长时间,我必须自己结束它。我使用了以下代码:
#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运行时有问题,但我找不到它。调试不起作用。
如果有人仍然感兴趣,我发现了问题所在。根据这个链接,不像其他一些MPI实现,Intel MPI Library uses a Multi-Purpose Daemon (MPD) job startup mechanism. To run programs compiled with mpicc (or related) commands, you must first set up MPD daemons.
所以,我按照链接中解释的步骤,执行mpdboot
命令,并且volilo,它最终工作。
相关文章:
- 从Visual Studio 2017运行MPI应用程序,每个进程在不同的cmd窗口中
- MPI 应用程序无法连接到 SMPD 管理器 (空):55846 错误 1722
- 使用MPI/OpenMP的C 程序带有派生数据类型(嵌套类对象)容器
- 为什么我的 MPI 应用程序会触发断点?
- 如何使用 Open MPI 使我的程序更快?我的 Open MPI 程序目前比原来慢,我有什么不明白的?
- 正在查找OpenMP+MPI应用程序的资源
- MPI在某个进程找到解决方案时使用广播结束程序
- 在Linux Makefile上运行MPI程序
- Python "print"嵌入到 MPI 程序中时不起作用
- 如何使用 MPI 程序从命令行读取参数
- 如何测试MPI程序
- 如何持续运行 MPI 程序
- MPI程序仅捕获来自秩1的消息
- 使用MPI程序,所有进程都从用户输入获取数据
- 无法运行简单的 mpi 程序
- c++ MPI程序中可能存在的内存泄漏
- 使用Code::Blocks运行多个进程的MPI程序
- 在多个主机之间分配进程时,打开MPI程序不工作
- 使用 GDB 在 Fortran 中调试 MPI 程序
- 从另一个MPI程序中启动MPI可执行文件