如何将最高优先级设置为Slurm作业?

17

作为管理员,我需要给予某个任务最高的优先级。

我发现像 --priority=<value> 或者 --nice[=adjustment] 的提交选项可能很有用,但是我不知道应该给它们分配什么值才能为任务提供最高的优先级。

另一种方法可能是将所有任务默认设置为低优先级,对特殊任务进行优先级提高。

有什么想法可以实现这个吗?

编辑:我正在使用 sched/backfill 策略和默认的作业优先级策略(FIFO)。

谢谢。

2个回答

19

我找到了一种解决方案,可以不使用PriorityType=priority/multifactor(如Bub Espinja建议的那样)就能实现:

$ scontrol update job=<job-id> Priority=<any-integer>

上述命令将更新作业的优先级并相应地更新队列。
要成为下一个等待处理的作业,所需的最低优先级可以通过检查下一个挂起的作业的优先级并将其加一来确定。您可以使用以下方法找到作业的优先级:
$ scontrol show job=<job-id>

(scontrol update可以用于更改作业的许多方面,例如时间限制其他。)

编辑:

我刚学会了一种方法

$ scontrol top <job-id>

将任务置于队列顶部。


8
我所做的是使用默认配置的优先级插件multifactor,在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之间的整数。数字越大,作业在队列中的位置越高,作业被调度的时间就越早。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接