как выполнить задание qsub итеративно

как выполнить работу 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?

Спасибо!


person user2458189    schedule 06.06.2013    source источник
comment
знаешь почему submitted job will return immediately??   -  person abasu    schedule 06.06.2013
comment
вы делаете это, создавая таблицу заданий или цикл for является приемлемым вариантом   -  person alex_milhouse    schedule 18.06.2013


Ответы (2)


По своей природе qsub немедленно возвращает идентификатор задания, поэтому вы не сможете отправлять задания в пакетном режиме, как вы описываете.

Если вы используете крутящий момент, вы можете использовать массивы заданий. См. эту документацию

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
person spuder    schedule 23.07.2013

Я не уверен, почему вы не можете просто qsub сделать один скрипт, который затем будет последовательно выполнять задания после запуска.

Но если это поможет, вы можете отправить задания и дать им условие для выполнения только после завершения другого задания (в данном случае предыдущего задания):

Вложенный/последовательный вызов qsub с крутящим моментом

person gzS    schedule 05.08.2013