首页 文章

如何迭代地进行qsub工作

提问于
浏览
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做这个吗?

谢谢!

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
    
  • 0

    我不确定为什么你不能只调用一个脚本,然后一旦运行就会顺序执行作业 .

    但是如果它有帮助,你可以提交作业并给它们条件,只有当另一个作业(在这种情况下是上一个作业)完成时才能执行:

    Torque nested/successive qsub call

相关问题