通过srun启动MPI作业中的固定流程

时间:2014-12-18 12:11:35

标签: mpi slurm

我在SLURM群集上运行MPI作业,并希望将生成的进程固定到节点上的特定核心。这可以包括不同节点上的不同数量的进程和不同节点上的不同固定模式。如果我使用salloc分配节点,并为mpi进程构建一个rank文件并使用mpirun启动进程,这一切都相对容易。

不幸的是,如果在超时或抢占时出于任何原因撤销分配,则节点上运行的进程将被终止,但是在头节点上执行的mpirun不会被终止,并且从生成可忽略的负载开始为无限期执行的线程生成100%的负载。

似乎答案是使用srun而不是mpirun来启动应用程序,但是如果我这样做,我很难找到如何设置进程位置。有人有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我不是一个愚蠢的专家,如果不知道你想要做什么的具体细节,我们无法给你一个具体的答案。但是,您可能需要的内容可以在SLURM文档中找到:

https://computing.llnl.gov/linux/slurm/mc_support.html

它有各种各样的文档,关于绑定到core,socket等的一百万种不同的方法。如果要将进程专门绑定到各个核心,您可能希望将--cpu-bindmap_cpu一起使用。

您的特定系统可能还有关于如何在您的计算机上执行此操作的文档。例如,在阿贡国家实验室的超级计算机上,您可以在他们的网站上找到有关如何专门针对他们的IBM BG / Q的信息:

http://www.alcf.anl.gov/user-guides/running-jobs#mapping-of-mpi-tasks-to-cores