作为管理员,我需要为给定的工作提供最高优先级。
我发现提交选项如:--priority=<value>
或--nice[=adjustment]
可能很有用,但我不知道应该分配哪些值以便为作业提供最高优先级。
另一种方法可能是默认情况下为所有作业设置低优先级,而特殊作业则增加它。
我知道如何实现它吗?
编辑:我正在使用 sched / backfill 策略和默认作业优先级策略(FIFO)。
谢谢。
答案 0 :(得分:2)
我找到了一种无需使用PriorityType=priority/multifactor
(作为suggested by Bub Espinja)的解决方案:
$ scontrol update job=<job-id> Priority=<any-integer>
以上命令将更新作业的优先级并相应地更新队列。
可以通过检查下一个待处理作业的优先级并添加一个优先级来找到成为下一个作业所需的最低优先级。您可以使用以下命令找到工作的优先级:
$ scontrol show job=<job-id>
({scontrol update
可用于更改工作的许多方面,例如time limit和others。)
编辑:
我刚学会一个人可以做
$ scontrol top <job-id>
将作业放在其队列的顶部。
答案 1 :(得分:1)
我所做的是使用优先级插件多重因子,使用默认配置,将此行添加到 slurm.conf :
PriorityType=priority/multifactor
然后,因为所有作业的优先级都是0,所以我必须更新目标作业优先级,在我的情况下使用API:
job_desc_msg_t job_update;
slurm_init_job_desc_msg(&job_update);
job_update.job_id = target_job_id;
job_update.priority = 4294967295;
slurm_update_job(&job_update);
编辑:
来自Slurm FAQ:
作业的优先级是一个介于0到4294967295之间的整数。数字越大,作业在队列中的位置越高,作业的安排就越早。