了解qsub中的-t选项

时间:2016-06-12 18:23:47

标签: pbs qsub torque

关于使用-t

提交作业的qsub选项究竟是什么,文档有点不清楚

http://docs.adaptivecomputing.com/torque/4-0-2/Content/topics/commands/qsub.htm

来自文档:

  

-t指定作业数组的任务ID。允许单个任务数组。   array_request参数是整数id或整数范围。   多个id或id范围可以组合在逗号分隔列表中。   示例:-t 1-100或-t 1,10,50-100

这是一个出错的例子,我已经请求了2个节点,每个节点有8个进程,以及16个作业的数组。我希望它可以自然地分布在两个节点上,但是16个任务是在超过2个节点上临时分发的。

$ echo 'hostname' | qsub -q gpu -l nodes=2:ppn=8 -t 1-16
52727[]
$ cat STDIN.o52727-* | sort
gpu-3.local
gpu-3.local
gpu-3.local
gpu-3.local
gpu-5.local
gpu-5.local
gpu-5.local
gpu-5.local
gpu-5.local
gpu-5.local
gpu-7.local
gpu-7.local
gpu-7.local
gpu-7.local
gpu-7.local
gpu-7.local

1 个答案:

答案 0 :(得分:1)

我怀疑这不会完全回答你的问题,但你希望完成的目标仍然不清楚。

使用qsub -t指定数组只会创建具有相同主ID的单个作业。提交您指定的方式将创建16个作业,每个作业请求16个核心。这种语法只是让您更容易一次提交大量作业,而无需编写提交循环脚本。

单独使用Torque(即忽略调度程序),您可以通过以下方式强制作业到特定节点:

qsub -l nodes = gpu-node01:ppn = 8 + gpu-node02:ppn = 8

更高级的调度程序可以为您提供更大的灵活性(例如,Moab或Maui允许" -l nodes = 2:ppn = 8,nallocpolicy = exactnode",它将NODEALLOCATIONPOLICY EXACTNODE应用于作业在调度时,将在两个节点上分别提供8个核心(在这种情况下,任意两个节点)。)