指定作业的节点优先级

时间:2018-01-18 10:14:05

标签: slurm

我想对特定节点做出“软”请求。例如,我更喜欢在Node1或Node2上执行我的工作,但如果它们不可用,我会选择Node3或Node4(作业仅在一个节点上运行)。请求必须是每个作业,而不仅仅是为整个集群设置节点优先级。

可以吗?到目前为止,我没有找到任何能够做到这一点的旗帜。

1 个答案:

答案 0 :(得分:0)

使用Slurm没有简单的方法。这是一个应该有效的复杂程序。

这个想法是提交两份工作:

#!/bin/bash
#SBATCH --exclude Node1,Node2
#SBATCH --name convolutedproc
#SBATCH --dependency singleton
#SBATCH --nice 1000

scancel --name convolutedproc --state PENDING

#Useful work here

#!/bin/bash
#SBATCH --exclude Node3,Node4
#SBATCH --name convolutedproc
#SBATCH --dependency singleton
#SBATCH --nice 0

scancel --name convolutedproc --state PENDING

#Useful work here

开始的第一份工作会杀死另一份工作。 Slurm确保不与singleton同时启动,如果它们同时符合条件,则会先选择--nice 0的{​​{1}}。