指定作业的节点优先级



我想对特定节点发出'软'请求。例如,我希望我的作业在节点 1 或节点 2 上执行,但如果它们不可用,我会选择节点 3 或节点 4(作业仅在一个节点上运行(。请求必须针对每个作业,而不仅仅是为整个群集设置节点优先级。

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

没有简单的方法可以做到这一点。这是一个应该有效的复杂过程。

这个想法是提交两个作业:

#!/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的那个。

最新更新