【问题标题】:Compile and run OpenMPI program编译并运行 OpenMPI 程序
【发布时间】:2011-10-31 15:28:14
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c++ c linux mpi


    【解决方案1】:

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

    主机文件(在主机上):

    # my_hostfile 
    192.168.0.205
    192.168.0.208
    

    打开 MPI 的命令:

    mpirun --hostfile my_hostfile programname
    

    对于无密码 SSH 访问,在 ~/.ssh 下创建一个主密钥

    ssh-keygen -t rsa
    

    将主计算机中~/.ssh/rsa.pub 的(一行)内容添加到目标计算机上~/.ssh/authorized_keys2 中的新行。 (您可以使用其他 SSH 密码系统来代替 RSA。)

    【讨论】:

    • 我没用过 mpi 但你不需要在主机上启动一些东西吗?
    • 我明天早上将在本地集群上尝试一下。 ;-)
    猜你喜欢
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2013-10-22
    相关资源
    最近更新 更多