我想对特定节点做出“软”请求。例如,我更喜欢在Node1或Node2上执行我的工作,但如果它们不可用,我会选择Node3或Node4(作业仅在一个节点上运行)。请求必须是每个作业,而不仅仅是为整个集群设置节点优先级。
可以吗?到目前为止,我没有找到任何能够做到这一点的旗帜。
答案 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}}。