这就是事情。我已经在两台不同的计算机上安装了openmpi,我已经在这台机器上编译并运行了hello_world示例,它运行良好。但问题是当我启动这个命令时:
mpirun -hostfile hosts -n 3 hello_c
在hosts文件中:localhost和我的其他机器的ip。然后,程序问我我的ssh密码,在我填写后没有任何附加像mpirun刚刚崩溃。我真正的问题是我不能通过ssh在两台不同的计算机上运行mpi进程。
我想确切地说,所有openmpi二进制文件和库都在路径中设置得很好,甚至是hello_world。
答案 0 :(得分:0)
假设您的编译器与主机文件一样正确设置。您的问题是您需要在两台计算机之间设置无密码ssh,否则您将收到您所描述的错误。这是因为MPI需要快速有效地进行通信,并且不会提示消息输入密码,这会导致消息停止并导致程序崩溃。
答案 1 :(得分:0)
我已经设置了一个带有rsa证书的pass_wordless ssh,但它确实也有效。我已经在调试模式下启动了mpirun(-d),我得到了这个:
[baptiste@baptiste RE51]$ mpirun -d -hostfile hosts hello_c
[baptiste.thinkFed:02666] procdir: /tmp/openmpi-sessions-baptiste@baptiste.thinkFed_0/53471/0/0
[baptiste.thinkFed:02666] jobdir: /tmp/openmpi-sessions-baptiste@baptiste.thinkFed_0/53471/0
[baptiste.thinkFed:02666] top: openmpi-sessions-baptiste@baptiste.thinkFed_0
[baptiste.thinkFed:02666] tmp: /tmp
[roommateServer:01102] procdir: /tmp/openmpi-sessions-baptiste@roommateServer_0/53471/0/1
[roommateServer:01102] jobdir: /tmp/openmpi-sessions-baptiste@roommateServer_0/53471/0
[roommateServer:01102] top: openmpi-sessions-baptiste@roommateServer_0
[roommateServer:01102] tmp: /tmp
没有别的,它留在这里,我已经杀了mpirun。
有关信息,我尝试使用此命令在远程节点上通过ssh lauchn mpirun hello_c:
ssh roomServer mpirun hello_c
这项工作很好......我无法理解为什么它不能在所有节点上工作..