Grid Engine 默认排队任务的优先级是靠时间积累增长,但我想指定某些排队的任务优先被执行。例如要求 CPU 较多的任务就比单CPU的多个任务更难被执行。linux
查看任务的优先级
shell
qstat -pri
更改任务的优先级(<JOB_ID>表明某个任务号)spa
qalter -p +1000 <JOB_ID>
结果无效,排队任务的 prior 没有改变。.net
查看 man 手册
code
man 5 sge_priority
网页版本:http://linux.die.net/man/5/sge_priorityget
其中说明优先级是靠下面这个公式计算出来的:
it
prio = weight_priority * pprio + weight_urgency * nurg + weight_ticket * ntcktsio
The higher a job's priority value, the earlier it gets dispatched.class
须要修改任务安排(scheduler)设置中的 weight_priority ,它默认为零,因此 qalter 改变 pprio 影响不了最终的 prio 。
di
qconf -msconf
我修改成: weight_priority 0.500000
而后再执行命令,能够看到排队任务的 prior 改变了。
qalter -p +1000 <JOB_ID> qstat -pri