如何迭代qsub工作?
让变量i = 2:10,对于每个i,我想运行“tmp.r”并暂停10秒然后再转到下一个i。我的脚本名称是test.pbs。 我试过这个:
for i in `seq 1 10`;do;qsub job$i.sub;sleep 10;done
但此提交的作业将立即返回..
我想在Cray XE6上运行它。 我的R代码使用遍历算法,因此迭代提交作业将使其更有效。
知道怎么用bash或python做这个吗?
谢谢!
答案 0 :(得分:0)
从本质上讲,qsub会立即返回一个作业ID,因此您将无法像您所描述的那样批量提交作业。
如果使用扭矩,则可以使用作业阵列。请参阅此文档
http://docs.adaptivecomputing.com/torque/help.htm#topics/commands/qsub.htm#-t
echo sleep 300 | qsub -t 10
[adaptive@mongo-test3 ~]$ qstat
Job id Name User Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
19188[].mongo-test3 STDIN adaptive 0 R batch
如果您使用的是Moab等调度程序
[adaptive@mongo-test3 ~]$ showq
active jobs------------------------
JOBID USERNAME STATE PROCS REMAINING STARTTIME
19188[10] adaptive Running 1 00:59:19 Tue Jul 23 16:40:25
1 active job 1 of 8 processors in use by local jobs (12.50%)
1 of 1 nodes active (100.00%)
eligible jobs----------------------
JOBID USERNAME STATE PROCS WCLIMIT QUEUETIME
0 eligible jobs
blocked jobs-----------------------
JOBID USERNAME STATE PROCS WCLIMIT QUEUETIME
0 blocked jobs
Total job: 1
答案 1 :(得分:0)
我不确定为什么你不能只调用一个脚本,然后在运行后按顺序执行作业。
但如果它有帮助,你可以提交作业并给他们条件,只有当另一份工作(在这种情况下是上一份工作)完成时才能执行: