我有一个异构计算群集,我想在使用OpenMPI时运行并行计算任务。由于不是群集中的所有节点都可以运行相同的可执行文件(由于存在异构性),我希望某些节点可以编译它们自己的程序版本,并使Open MPI在这些节点上调用该可执行文件。我的第一个问题是OpenMPI是否支持跨异构体系结构的这种计算。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。我不知道如何做到这一点,因为我的集群正在运行ArchLinux,并且我使用pacman
安装了OpenMPI。
太好了。因此,一旦我使用该标志构建OpenMPI,我可以继续编译我的单独可执行文件并使用该命令执行它们? –
我想是的,你打算运行什么样的体系结构? –
集群中的一些节点有x86芯片组,有些是ARM(肯定是一个穷人的集群,更像是一个教育项目) –