OpenMPI 为特定节点指定可执行文件
OpenMPI specify executable for specific nodes
我有一个异构计算集群,我想 运行 使用 OpenMPI 并行计算任务。由于并非集群中的所有节点都可以 运行 相同的可执行文件(由于是异构的)我希望一些节点编译他们自己的程序版本并让 Open MPI 在这些节点上调用该可执行文件。我的第一个问题是 OpenMPI 是否支持这种跨异构架构的计算。
如果是这样,我的第二个问题是如何在哪些节点上指定哪些可执行文件运行。例如,假设 node0
、node1
和 node2
可以 运行 执行 prog1
和 node3
、node4
和 node5
可以 运行 执行 prog2
,其中 prog1
和 prog2
是同一个程序,但使用 mpicc
或 mpic++
针对不同的体系结构编译包装器编译器。
如果我想 运行 这个程序在所有节点上并行执行,我会执行以下操作:
mpirun -n 3 --hosts node0,node1,node2 prog1 : -n 3 --hosts node3,node4,node5 prog2
如果没有,我该怎么做才能达到这种效果? This post 表示 OpenMPI 支持异构集群计算,但我必须使用 --enable-heterogeneous
标志构建 OpenMPI。我不确定如何执行此操作,因为我的集群是 运行ning ArchLinux 并且我使用 pacman
.
安装了 OpenMPI
注意有错别字(--host
不需要结尾s
),所以你的命令应该是
mpirun -n 3 --host node0,node1,node2 prog1 : -n 3 --host node3,node4,node5 prog2
--enable-heterogeneous
是必需的,因此 Open MPI 在异构系统上可以是 运行(例如在 Intel x86_64(小端)和 sparcv9(大端)节点之间)。如果 OpenMPI(与 ArchLinux 一起提供)没有配置这个标志,那么你应该重建这个包。另一种选择是重建 Open MPI 并将其安装到备用目录中。
最后但同样重要的是,异构支持经过(非常)简单的测试,我强烈建议您使用最新的 Open MPI 3.0 系列。
我有一个异构计算集群,我想 运行 使用 OpenMPI 并行计算任务。由于并非集群中的所有节点都可以 运行 相同的可执行文件(由于是异构的)我希望一些节点编译他们自己的程序版本并让 Open MPI 在这些节点上调用该可执行文件。我的第一个问题是 OpenMPI 是否支持这种跨异构架构的计算。
如果是这样,我的第二个问题是如何在哪些节点上指定哪些可执行文件运行。例如,假设 node0
、node1
和 node2
可以 运行 执行 prog1
和 node3
、node4
和 node5
可以 运行 执行 prog2
,其中 prog1
和 prog2
是同一个程序,但使用 mpicc
或 mpic++
针对不同的体系结构编译包装器编译器。
如果我想 运行 这个程序在所有节点上并行执行,我会执行以下操作:
mpirun -n 3 --hosts node0,node1,node2 prog1 : -n 3 --hosts node3,node4,node5 prog2
如果没有,我该怎么做才能达到这种效果? This post 表示 OpenMPI 支持异构集群计算,但我必须使用 --enable-heterogeneous
标志构建 OpenMPI。我不确定如何执行此操作,因为我的集群是 运行ning ArchLinux 并且我使用 pacman
.
注意有错别字(--host
不需要结尾s
),所以你的命令应该是
mpirun -n 3 --host node0,node1,node2 prog1 : -n 3 --host node3,node4,node5 prog2
--enable-heterogeneous
是必需的,因此 Open MPI 在异构系统上可以是 运行(例如在 Intel x86_64(小端)和 sparcv9(大端)节点之间)。如果 OpenMPI(与 ArchLinux 一起提供)没有配置这个标志,那么你应该重建这个包。另一种选择是重建 Open MPI 并将其安装到备用目录中。
最后但同样重要的是,异构支持经过(非常)简单的测试,我强烈建议您使用最新的 Open MPI 3.0 系列。