1

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

mpirun -hostfile hosts -n 3 hello_c 

在主机文件中:localhost 和我另一台机器的 ip。然后,程序询问我的 ssh 密码,在我填写之后,没有任何附加内容,例如 mpirun 刚刚崩溃。我真正的问题是我无法通过 ssh 在两台不同的计算机上运行 mpi 进程。

我想准确地说所有 openmpi 二进制文件和库都设置在路径中,甚至是 hello_world。


更新

我已经设置了一个带有 rsa 证书的 pass_wordless 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

没有别的,它留在这里,我必须杀死 mpirun。

有关信息,我尝试使用以下命令在远程节点上通过 ssh 启动 mpirun hello_c:

ssh roomServer mpirun hello_c

这工作得很好......我绝对无法理解为什么它不能在所有节点上工作......

4

1 回答 1

0

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

于 2013-03-22T23:28:46.763 回答