【发布时间】:2015-02-17 05:24:41
【问题描述】:
我正在 SLURM 集群上运行 MPI 作业,并希望将生成的进程固定到节点上的特定核心。这可以包括不同节点上不同数量的进程以及不同节点上不同的固定模式。如果我使用 salloc 分配节点,并为 mpi 进程构建一个等级文件并使用 mpirun 启动进程,这一切都相对容易。
不幸的是,如果分配因超时或抢占等任何原因而被撤销,则在节点上运行的进程将被杀死,但在头节点上执行的 mpirun 不会被杀死,并且不会产生可忽略的负载为它无限期执行的线程生成 100% 的负载。
答案似乎是使用 srun 而不是 mpirun 来启动应用程序,但如果我这样做,我正在努力找出如何设置进程位置。有人有什么建议吗?
【问题讨论】:
-
你为什么使用
salloc而不是sbatch?程序是否具有交互性?否则,使用sbatch您的主要mpirun进程将被杀死。 -
由于我正在运行的实验的性质,我使用 salloc 分配了大量机器,然后使用 srun 启动此分配中的特定作业。我想确保在开始任何事情之前我拥有所有必需的机器,因此使用 salloc。