编译并运行OpenMPI程序

时间:2011-08-21 15:49:51

标签: c++ c linux mpi

我正在使用的集群有几种主机类型 - 不同的Linux发行版/版本,一些32位,一些64位,不同版本的GCC。我知道我应该用GCC的平台特定MPI包装器编译我的程序。这个步骤对我来说或多或少都很清楚。

我的程序使用固定数量的主机,每个主机只运行1个进程。共享内存线程由TBB处理,所以基本上我只需要MPI来主机之间的工作分配。

最后一步是在所有主机上运行该程序。事实证明,这是我不确定该怎么做的部分,我的IT人员无法帮助我。

我所拥有的是主机IP地址列表(本地地址准确,如192.168.1.xxx)以及每个主机的用户名和密码。在所有主机上运行我的程序的步骤是什么,只要它是具有特定于平台的编译器的编译器并复制到每个主机中?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

您需要对所有计算机,主机文件和所有计算机上的可执行文件进行无密码SSH访问。 确保可执行文件在所有计算机上具有相同(相对)路径。

主机文件(在主机上):

# my_hostfile 
192.168.0.205
192.168.0.208

Open MPI命令:

mpirun --hostfile my_hostfile programname

对于无密码SSH访问,在~/.ssh

下创建一个主密钥
ssh-keygen -t rsa

将主计算机中的~/.ssh/rsa.pub的(一行)内容添加到目标计算机上~/.ssh/authorized_keys2的新行中。 (而不是RSA,您可以使用另一个SSH密码系统。)