контролировать все задания в учетной записи пользователя - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь сохранить все задания, отправленные с моего аккаунта.Однако scontrol hold принимает только массив, и у меня много массивов.Есть ли альтернативная команда, такая как scancel -u user?

Edit1: Если итерация всех идентификаторов заданий является единственным способом, это мой метод:

squeue -u user | awk '{print $1;}' | while read jobid; do scontrol hold $jobid; done

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Хотя отформатированный текст для sh является умным, я бы, вероятно, сделал что-то вроде этого:

squeue -u <user> --format "%i" --noheader | xargs scontrol hold

или

sacct --allocation --user=<user> --noheader --format=jobid | xargs scontrol hold

Если вы хотите фильтровать по состоянию, выможет сделать то же самое:

squeue -u <user> --format "%i" --noheader --states=PENDING | xargs scontrol hold

или

sacct --allocation --user=<user> --noheader --format=jobid --state=PENDING | xargs scontrol hold

источник: Справочные страницы Slurm

0 голосов
/ 23 февраля 2019

Часто используемый метод состоит в том, чтобы (ab) использовать возможности форматирования squeue для построения строки scontrol:

squeue -u user --format "scontrol hold job %i"

и затем передать это в оболочку:

squeue -u user --format "scontrol hold job %i" | sh
...