如何使用 SLURM 限制同一节点上的作业数 运行?

how to limit the number of jobs running on the same node using SLURM?

我有一个包含 100 个作业的作业数组。我希望最多可以将作业数组中的 2 个作业分配给同一个节点。我如何使用 SLURM 执行此操作?谢谢!

假设作业可以共享节点,并且节点具有同构配置,并且您在集群上是单独的,

  1. 使用sinfo -Nl命令查找每个节点的CPU数量
  2. 根据您的工作内容,使用 #SBATCH --tasks-per-node=...#SBATCH --cpus-per-task=... 提交要求一半的工作

如果您正在管理一个在其他人之间共享的集群,您可以定义一个虚拟类型的 GRES,并将其中两个分配给 slurm.conf 中的每个节点,然后每个请求一个与 --gres=dummy:1

一起工作