Есть ли в Slurm быстрая команда для определения общего количества заданий (ожидающих и активных) в данный момент? - PullRequest
0 голосов
/ 29 октября 2018

В slurm вызов команды squeue -u <username> выведет список всех заданий, ожидающих или активных для данного пользователя. Мне интересно, если бы был быстрый способ подсчитать их все, чтобы я знал, сколько есть выдающихся рабочих мест, в том числе в ожидании и активно работающих рабочих мест. Спасибо!

1 Ответ

0 голосов
/ 29 октября 2018

Если вы просто хотите суммировать вывод squeue, как насчет:

squeue -u <username> | awk '
BEGIN {
    abbrev["R"]="(Running)"
    abbrev["PD"]="(Pending)"
    abbrev["CG"]="(Completing)"
    abbrev["F"]="(Failed)"
}
NR>1 {a[$5]++}
END {
    for (i in a) {
        printf "%-2s %-12s %d\n", i, abbrev[i], a[i]
    }
}'

, что дает что-то вроде:

R  (Running)    1
PD (Pending)    4

Пояснения:

  • Предполагается, что job state находится в 5-м поле в соответствии с форматом по умолчанию squeue.
  • Затем скрипт подсчитывает внешний вид каждого кода состояния задания, за исключением 1-й строки, которая включает заголовок.
  • Наконец, он сообщает счетчик каждого кода состояния задания.

Для удобства добавьте следующие строки в .bash_aliases или .bashrc (имя файла может зависеть от системы):

function summary() {
    squeue "$@" | awk '
    BEGIN {
        abbrev["R"]="(Running)"
        abbrev["PD"]="(Pending)"
        abbrev["CG"]="(Completing)"
        abbrev["F"]="(Failed)"
    }
    NR>1 {a[$5]++}
    END {
        for (i in a) {
            printf "%-2s %-12s %d\n", i, abbrev[i], a[i]
        }
    }'
}

Затем вы можете вызвать команду просто с помощью summary [option], где [option] принимает опции к squeue, если необходимо (в основном, не нужно).

Надеюсь, это поможет.

...