mpirun和ssh的Openmpi问题

mpirun和ssh的Openmpi问题,mpi,openmpi,Mpi,Openmpi,事情是这样的。我已经在两台不同的计算机上安装了openmpi,我已经在这台机器上分别编译并运行了hello_world示例,它运行得很好。但问题是当我启动这个命令时: mpirun -hostfile hosts -n 3 hello_c ssh roomServer mpirun hello_c 主机文件中的:localhost和我的另一台计算机的ip。然后,程序询问我的ssh密码,在我填写完密码后,没有什么东西会像mpirun一样崩溃。我真正的问题是,我不能通过ssh在两台不同的计算机

事情是这样的。我已经在两台不同的计算机上安装了openmpi,我已经在这台机器上分别编译并运行了hello_world示例,它运行得很好。但问题是当我启动这个命令时:

mpirun -hostfile hosts -n 3 hello_c 
ssh roomServer mpirun hello_c
主机文件中的:localhost和我的另一台计算机的ip。然后,程序询问我的ssh密码,在我填写完密码后,没有什么东西会像mpirun一样崩溃。我真正的问题是,我不能通过ssh在两台不同的计算机上运行mpi进程

我想指出的是,所有openmpi二进制文件和库都在path中设置得很好,甚至在hello_世界中也是如此


更新


我已经用rsa证书设置了一个pass_无字ssh,但它也不起作用。我已经在调试模式(-d)下启动了mpirun,我得到了以下结果:

[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
没别的了,它留在这里,我得杀了它

作为参考,我尝试使用以下命令在远程节点上通过ssh运行hello_c:

mpirun -hostfile hosts -n 3 hello_c 
ssh roomServer mpirun hello_c

这个工作很好。。。我完全无法理解为什么它不能在所有节点上工作。

假设您的编译器和主机文件设置正确。您的问题是,您需要在两台计算机之间设置无密码ssh,否则将出现您描述的错误。这是因为MPI需要快速有效地进行通信,并且不会提示消息输入密码,这会导致消息暂停和程序崩溃。

它到底是如何崩溃的?MPI运行“不做任何事情”并让终端保持忙碌状态。我必须用^c来检索它。谢谢你的回答。因此,我将尝试使用ssh的rsa密钥。我还有一个小问题,当我用mpirun通过网络启动一个程序时,我必须在所有计算机上安装这个程序,否则mpi运行时会负责吗?谢谢。我已经用ssh证书试过了。它总是卡在同一个地方,什么也没有发生。我必须终止使用^C运行mpi。要回答您的第一个问题,是的,否则它将查找目标文件,但找不到它们,而且mpi也需要安装在所有计算机上。这里有一个设置pass-wordless-ssh的快速指南,我已经用rsa证书设置了pass\u-wordless-ssh,但是它不起作用。