作为管理员,我需要给予某个任务最高的优先级。
我发现像 --priority=<value>
或者 --nice[=adjustment]
的提交选项可能很有用,但是我不知道应该给它们分配什么值才能为任务提供最高的优先级。
另一种方法可能是将所有任务默认设置为低优先级,对特殊任务进行优先级提高。
有什么想法可以实现这个吗?
编辑:我正在使用 sched/backfill 策略和默认的作业优先级策略(FIFO)。
谢谢。
作为管理员,我需要给予某个任务最高的优先级。
我发现像 --priority=<value>
或者 --nice[=adjustment]
的提交选项可能很有用,但是我不知道应该给它们分配什么值才能为任务提供最高的优先级。
另一种方法可能是将所有任务默认设置为低优先级,对特殊任务进行优先级提高。
有什么想法可以实现这个吗?
编辑:我正在使用 sched/backfill 策略和默认的作业优先级策略(FIFO)。
谢谢。
我找到了一种解决方案,可以不使用PriorityType=priority/multifactor
(如Bub Espinja建议的那样)就能实现:
$ scontrol update job=<job-id> Priority=<any-integer>
$ scontrol show job=<job-id>
(scontrol update
可以用于更改作业的许多方面,例如时间限制和其他。)
编辑:
我刚学会了一种方法
$ scontrol top <job-id>
将任务置于队列顶部。
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之间的整数。数字越大,作业在队列中的位置越高,作业被调度的时间就越早。