有没有办法将 SLURM 分区中的某些节点设置为优先于其他节点?

Is there a way to set certain nodes within a SLURM partition to be preferred over other nodes?

我有一个集群,主要由 CPU+GPU 节点和几个仅 CPU 节点组成。目前他们在两个分区中,分别是 'gpuNodes''cpuNodes'。我们的需求在增长,我们的 CPU only 作业需要使用 CPU+GPU 节点以及 CPU only 节点来及时完成。我正在考虑创建一个 'all' 分区,其中包含来自先前两个节点的节点。理想情况下,我想在将作业提交到 CPU+GPU 节点之前填写仅 CPU 节点。

这引出了我的问题。有没有办法为分区内的一组节点设置 priority/preference,以便分配给分区的批处理作业首先填充首选节点?或者,如果您知道实现我的目标的更好方法,我不会设置在上面提到的 'all' 分区上。

如果它有助于为我的节点命名架构,请遵循以下语法:

具有 CPUs + GPU 的节点:gn001-gn100
只有 CPUs 的节点:n001-n20

提前感谢您的帮助!

这通常通过 slurm.conf

中的 weight 参数完成

来自slurm.conf man page

All things being equal, jobs will be allocated the nodes with the lowest weight which satisfies their requirements.

在你的情况下你会设置类似

NodeName=n[001-200] ... Weight=10
NodeName=gn[001-100] ... Weight=100

不请求 GPU 的作业将首先分配 CPU-only 节点,只有在没有 CPU-only 节点时,才会分配它们 CPU+ GPU 节点。需要 GPU 的作业当然只会分配 CPU+GPU 节点。