2013-03-22 99 views
1

这是事情。我已经在两台不同的计算机上安装了openmpi,我已经在这台机器上编译并运行hello_world示例,并且运行良好。但问题是当我发起这个命令:与mpirun和ssh的Openmpi麻烦

mpirun -hostfile hosts -n 3 hello_c 

与在主机文件:本地主机和我的其他机器的IP。然后,该程序问我我的SSH密码,并填充它之后没有像mpirun刚刚崩溃一样追加。我真正的问题是我无法通过ssh在两台不同的计算机上运行mpi进程。

我想确切地说,所有的openmpi二进制文件和库都设置在路径中,即使是hello_world。

+0

它究竟如何崩溃? – 2013-03-22 23:27:28

+0

Mpirun没有注意到并继续忙于终端。我必须做^ c来检索它。 – Baptiste 2013-03-23 14:14:09

回答

0

假设您的编译器已正确设置以及您的主机文件。你的问题是你需要在两台电脑之间设置无密码的ssh,否则你会得到你描述的错误。这是因为MPI需要快速高效地进行通信,并且不会提示消息提示输入密码,从而导致消息失速并导致程序崩溃。

+0

谢谢你的回答。所以我会尝试用ssh的rsa密钥。我还有一个小问题,当我用mpirun通过网络启动一个程序时,我必须在此之前将所有程序放在所有的计算机上,否则mpi运行时需要这个程序?谢谢。 – Baptiste 2013-03-23 07:43:16

+0

我试过用ssh证书。它总是停留在同一个地方,没有任何答案。我必须用^ C杀死mpi。 – Baptiste 2013-03-23 14:26:12

+0

要回答你的第一个问题,是的,另外明智的是,它将查找目标文件,但找不到它们,并且还需要在所有机器上安装MPI。下面是一个快速指南来设置无密码的ssh http://askubuntu.com/questions/46930/how-can-i-set-up-password-less-ssh-login – pyCthon 2013-03-23 15:07:01

0

我已经用rsa证书设置了一个pass_wordless ssh,但它也没有工作。我已经推出了调试模式(-d)的mpirun和我得到这个:

[[email protected] RE51]$ mpirun -d -hostfile hosts hello_c 
[baptiste.thinkFed:02666] procdir: /tmp/[email protected]_0/53471/0/0 
[baptiste.thinkFed:02666] jobdir: /tmp/[email protected]_0/53471/0 
[baptiste.thinkFed:02666] top: [email protected]_0 
[baptiste.thinkFed:02666] tmp: /tmp 
[roommateServer:01102] procdir: /tmp/[email protected]_0/53471/0/1 
[roommateServer:01102] jobdir: /tmp/[email protected]_0/53471/0 
[roommateServer:01102] top: [email protected]_0 
[roommateServer:01102] tmp: /tmp 

,没有别的,就留在这儿,我已经杀的mpirun。

有关信息,我试图lauchn使用此命令在远程节点上的mpirun hello_c槽SSH:

ssh roomServer mpirun hello_c 

这项工作做得很好......我definetly不明白为什么它不能在所有工作节点..