OpenMPI:简单的2节点设置

时间:2014-04-08 00:31:25

标签: parallel-processing mpi cluster-computing openmpi

我只使用两个节点运行OpenMPI程序时遇到问题(其中一个节点是执行 mpiexec 命令的同一台机器,而另一个节点是一台单独的机器)。

我将调用运行mpiexec, master 的机器,另一个节点 slave

从属上,我已在我的主目录中安装了OpemMPI 〜/ mpi

我在 master 上有一个名为〜/ machines.txt的文件。

理想情况下,〜/ machines.txt应包含:

  


  从属

但是,当我在

上运行以下内容时
  

mpiexec -n 2 --hostfile~ / machines.txt hostname

输出,我收到以下错误:

  

bash:orted:找不到命令

但是如果〜/ maschines.txt只包含运行该命令的节点的名称,那么它可以工作。 〜/ machines.txt:

  

命令:

  

mpiexec -n 2 --hostfile~ / machines.txt hostname

输出:

  


我尝试在 slave 上运行相同的命令,并将machines.txt文件更改为仅包含 slave ,并且它也有效。我确保我的 .bashrc 文件包含OpenMPI的正确路径。

我做错了什么?简而言之,当我尝试在远程计算机上执行程序时只会出现问题,但我可以在执行命令的计算机上完全运行mpiexec。这让我相信这不是一个路径问题。我错过了连接两台机器的一步吗?我有从主服务器到服务器的无密码ssh登录功能。

4 个答案:

答案 0 :(得分:2)

此错误消息表示您没有在远程计算机上安装Open MPI,或者您没有在远程计算机上正确设置PATH以进行非交互式登录(即,它无法找到在远程计算机上安装Open MPI)。 “orted”是Open MPI用于在远程节点上启动进程的辅助可执行文件之一 - 所以如果找不到“orted”,那么它甚至没有尝试在远程节点上启动“hostname”节点

请注意,shell启动文件中的交互式登录和非交互式登录之间可能存在差异(例如,在.bashrc中)。

另请注意,在所有节点上的相同路径位置安装Open MPI要简单得多 - 这样,上述前缀方法将在远程节点上执行时自动添加正确的PATH和LD_LIBRARY_PATH,并且您不必使用shell启动文件。

请注意,Open MPI主网站上有很多关于这类主题的常见问题项目。

答案 1 :(得分:1)

使用--prefix选项显式设置绝对OpenMPI前缀:

prompt> mpiexec --prefix=$HOME/mpi ...

或使用绝对路径调用mpiexec

prompt> $HOME/mpi/bin/mpiexec ...

后一个选项自动设置前缀。然后使用该前缀在远程计算机上设置PATHLD_LIBRARY_PATH

答案 2 :(得分:0)

这个答案来的很晚,但是对于linux用户来说,在~/.bashrc文件末尾添加环境变量是一个坏习惯,因为仔细看顶部,你会发现if函数退出if in非交互模式,这正是您通过 ssh 主机编译程序的方式。因此,将您的环境变量放在文件的顶部,然后退出 if

答案 3 :(得分:-1)

尝试编辑文件

的/ etc /环境

PATH =“的/ usr / local / sbin中:在/ usr / local / bin中:/ usr / sbin目录:在/ usr / bin中:/ sbin目录:/ bin中:在/ usr /游戏:在/ usr /本地/游戏:/家/ Hadoop的/ openmpi_install / BIN” LD_LIBRARY_PATH = /家庭/ hadoop的/ openmpi_install / lib中