我正在使用的集群有几种主机类型 - 不同的Linux发行版/版本,一些32位,一些64位,不同版本的GCC。我知道我应该用GCC的平台特定MPI包装器编译我的程序。这个步骤对我来说或多或少都很清楚。
我的程序使用固定数量的主机,每个主机只运行1个进程。共享内存线程由TBB处理,所以基本上我只需要MPI来主机之间的工作分配。
最后一步是在所有主机上运行该程序。事实证明,这是我不确定该怎么做的部分,我的IT人员无法帮助我。
我所拥有的是主机IP地址列表(本地地址准确,如192.168.1.xxx)以及每个主机的用户名和密码。在所有主机上运行我的程序的步骤是什么,只要它是具有特定于平台的编译器的编译器并复制到每个主机中?任何帮助表示赞赏。
答案 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密码系统。)