0

如何迭代地进行 qsub 工作?

让一个变量 i=2:10,对于每个 i,我想运行“tmp.r”并在进入下一个 i 之前暂停 10 秒。我的脚本名称是 test.pbs。我试过这个:

for i in `seq 1 10`;do;qsub job$i.sub;sleep 10;done

但是这个提交的工作将立即返回..

我想在 Cray XE6 上运行它。我的 R 代码使用了遍历算法,所以迭代提交作业会提高效率。

知道如何用 bash 或 python 做到这一点吗?

谢谢!

4

2 回答 2

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
于 2013-07-23T16:42:27.577 回答
0

我不确定为什么您不能只 qsub 一个脚本,该脚本将在运行后按顺序执行作业。

但如果有帮助,您可以提交作业并为它们提供仅在另一个作业(在本例中为前一个作业)完成时执行的条件:

扭矩嵌套/连续 qsub 调用

于 2013-08-05T15:25:17.297 回答