2

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

不幸的是,如果分配因超时或抢占等任何原因而被撤销,则在节点上运行的进程将被杀死,但在头节点上执行的 mpirun 不会被杀死,并且从产生可忽略不计的负载变为产生 100它无限期执行的线程的负载百分比。

看起来答案是使用 srun 而不是 mpirun 来启动应用程序,但是如果我这样做,我正在努力找出如何设置进程放置。有人有什么建议吗?

4

1 回答 1

0

我不是 slurm 专家,在不知道你想要做什么的细节的情况下,我们无法给你一个具体的答案。但是,您可能想要的可以在 SLURM 文档中找到:

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

那有各种各样的文档,关于一百万种不同的方式来绑定到核心、套接字等等。如果您想将进程专门绑定到单个内核,您可能想要使用--cpu-bindwith 。map_cpu

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

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

于 2014-12-18T16:32:56.530 回答