Ответ 1
Нашел ответ, похороненный в старой ветке supercluster.org:
qselect -u <username> | xargs qdel
Работал без нареканий.
Это довольно простой вопрос, но я не смог найти ответ.
У меня есть большое количество заданий, выполняемых в кластере ( > 20), и я хотел бы удалить их все и начать сначала.
В соответствии с этим сайтом я должен просто сделать:
qdel -u netid
чтобы избавиться от всех, но в моем случае, который возвращает:
qdel: invalid option -- 'u'
usage: qdel [{ -a | -c | -p | -t | -W delay | -m message}] [<JOBID>[<JOBID>]|'all'|'ALL']...
-a -c, -m, -p, -t, and -W are mutually exclusive
который, очевидно, указывает, что команда не работает.
Просто, чтобы проверить, я сделал:
qstat -u <username>
и я получаю список всех моих заданий, но:
qdel -u <username>
также не работает.
Нашел ответ, похороненный в старой ветке supercluster.org:
qselect -u <username> | xargs qdel
Работал без нареканий.
Опираясь на то, что Габриэль ответил:
qselect -u <username> | xargs qdel
qselect -u <username> -s <state> | xargs qdel
<state>
будет R
для запущенных заданий.
qselect позволит вам выбрать работу на основе других критериев, таких как запрашиваемые ресурсы (-l), очередь назначения (-q)...
qdel -u <username>
будет работать только с SGE
иногда может помочь простой grep/cut
:
qstat | grep $USER | cut -d. -f1 | xargs qdel
Таким образом, мы можем также grep
указать конкретное ключевое слово для заданий и удалить их.
НТН
# Delete all jobs owned by the current user.
#
# Command breakdown:
# ------------------
#
# qselect
# -u selects all jobs that belong to the current user
# -s EHQRTW selects all job states except for Complete
#
# xargs
# --no-run-if-empty Do not run qdel if the result set is empty
# to avoid triggering a usage error.
#
# qdel
# -a delete jobs asynchronously
#
# The backslashes are a trick to avoid matching any shell aliases.
\qselect -u $(whoami) -s EHQRTW | \xargs --no-run-if-empty \qdel -a
Другая возможность - сделать qdel all
. Он удаляет все задания у всех. Когда у вас нет доступа для работы с другими людьми, он удаляет только ваши задания.
Это не самое красивое решение, но оно, безусловно, самое короткое!
Попробуйте
$ qdel {id1..id2}
Итак, например:
$ qdel {1148613..1148650}
Для UGE:
qstat -u | gawk '{print $ 1}' | xargs qdel
qstat | cut -d. -f1 | sed "s; \(.*\) 0;qdel \1;" | bash
сила sed.
Просто используйте следующую команду:
qdel all
Отменит все задания, выполняемые в кластере.