【发布时间】:2014-05-20 11:15:34
【问题描述】:
我在仅使用两个节点运行 OpenMPI 程序时遇到了问题(其中一个节点是执行 mpiexec 命令的同一台机器,而另一个节点是一台单独的机器)。
我将调用运行 mpiexec、master 的机器和另一个节点 slave。
在 master 和 slave 上,我都在 ~/mpi
下的主目录中安装了 OpemMPI我在 master 上有一个名为 ~/machines.txt 的文件。
理想情况下,~/machines.txt 应该包含:
大师
奴隶
但是,当我在 master 上运行以下命令时:
mpiexec -n 2 --hostfile ~/machines.txt 主机名
输出,我收到以下错误:
bash: orted: 找不到命令
但是如果 ~/maschines.txt 只包含运行命令的节点的名称,它就可以工作。 ~/machines.txt:
主人
命令:
mpiexec -n 2 --hostfile ~/machines.txt 主机名
输出:
大师
大师
我尝试在 slave 上运行相同的命令,并将 machines.txt 文件更改为仅包含 slave,它也可以正常工作。我已确保我的 .bashrc 文件包含 OpenMPI 的正确路径。
我做错了什么?简而言之,只有当我尝试在远程机器上执行程序时才会出现问题,但我可以在执行命令的机器上完美地运行 mpiexec。这让我相信这不是路径问题。我错过了连接两台机器的步骤吗?我有从主机到从机的无密码 ssh 登录功能。
【问题讨论】:
-
如果你在
~/mpi下安装了MPI,那么我猜你已经将~/mpi添加到PATH里面的.bashrc或其他东西。不要假设在运行 MPI 的每台机器上都加载了.bashrc。 -
是的,我在两台机器的 PATH 和 lib LD_LIBRARY_PATH 中都添加了 bin。
标签: parallel-processing mpi cluster-computing openmpi