Очередью заданий на системах IBM Blue Gene/P и Regatta, установленных на факультете ВМК МГУ, управляет планировщик IBM Tivoli LoadLeveler. Чтобы поставить задание в очередь, необходимо подготовить специальный командный файл, в котором будет указан путь к исполняемому файлу и запрашиваемые программой ресурсы. Описанию формата командного файла посвящены отдельные разделы, а в этом рассмотрены вопросы запуска заданий и управления очередью.
Полный список и подробное описание команд планировщика можно найти в официальной документации, здесь же мы приведем только самые необходимые:
Краткую справку о ключах командной строки можно получить, использовав параметр -H, например:
$> llsubmit -H
Если задание описано с помощью командного файла test.jcf, который находится в текущей директории, то, чтобы поставить его в очередь, выполните команду
$> llsubmit test.jcf
Если отправка задания в очередь завершилась удачно, то на терминал будет выдано сообщение примерно следующего вида:
llsubmit: The job "fen1.bg.cmc.msu.ru.157" has been submitted.
Для получения информацию о всех заданиях, находящихся в очереди, выполните команду
$> llq
Она выведет список примерно следующего вида:
Id Owner Submitted ST PRI Class Running On ------------------------ ---------- ----------- -- --- ------------ ----------- fen1.156.0 shgnik 10/6 19:47 R 50 large fen1 fen1.157.0 pozdneev 10/6 20:17 R 50 large fen1 fen1.158.0 pozdneev 10/6 20:18 R 50 large fen1 fen1.134.0 popova 10/6 15:56 H 50 large 4 job step(s) in queue, 0 waiting, 0 pending, 3 running, 1 held, 0 preempted
Столбцы списка содержат следующую информацию:
Заголовок | Значение |
---|---|
Id | Идентификатор задания: имя_машины.номер_задания.номер_шага |
Owner | Идентификатор пользователя, от имени которого запускается задание |
Submitted | Дата и время постановки задания в очередь, причем дата записана в североамериканском формате (т.е. 10/6 соответствует 6-му октября) |
ST | Состояние задания (здесь приведены не все возможные значения):
|
PRI | Приоритет задания |
Class | Класс задания (см. тж. команду llclass) |
Running On | Имя машины, на которой работает задание; пусто, если задание еще не запущено |
На системе Blue Gene/P, кроме того, доступен ключ -b:
$> llq -b
С его помощью становится доступна информация, специфичная для Blue Gene/P:
Id Owner Submitted LL BG PT Partition Size ________________________ __________ ___________ __ __ __ ________________ ______ fen1.156.0 shgnik 10/6 19:47 R RU RE LL08100619471562 256 fen1.157.0 pozdneev 10/6 20:17 R CF LL08100620174963 512 fen1.158.0 pozdneev 10/6 20:18 I fen1.134.0 popova 10/6 15:56 H 4 job step(s) in queue, 1 waiting, 0 pending, 2 running, 1 held, 0 preempted
В дополнительных столбцах выводятся следующие данные:
Заголовок | Значение |
---|---|
LL | То же, что ST (см. предыдущую таблицу) |
BG | Состояние задания |
PT | Состояние раздела, на котором запущено задание |
Partition | Имя раздела, на котором запущена задание |
Size | Число вычислительных узлов, выделенных для задания |
Более подробную информацию об очереди можно получить, указав ключ -l и идентификатор задания:
$> llq -l fen1.157.0
Причем необязательно указывать полный идентификатор задания, но можно ограничиться его номером (это актуально не только для llq, но и для других команд LoadLeveler'а):
$> llq -l 157
Узнать причину, по которой задание не ставится на выполнение, можно, указав ключ -s:
$> llq -s fen1.158.0
Чтобы удалить из очереди задание, ожидающее постановки на счет, или снять со счета уже идущее задание, служит программа llcancel. Например, команда
$> llcancel fen1.157.0
удалит из очереди задание с идентификатором fen1.157.0 (напоминаем, что идентификатор задания показывается в поле Id выдачи программы llq), а команда
$ llcancel -u pozdneev
снимет все задания пользователя pozdneev. В обоих случаях задание будет удалено из очереди только в том случае, если к команде llcancel обратился его владелец или привилегированный пользователь.
Чтобы приостановить продвижение задания в очереди служит команда llhold. Для продолжения приостановленного задания нужно указать ключ -r (от слова «release»). Команда завершается успешно только в том случае, если к ней обратился владелец задания или привилегированный пользователь. Можно приостановить или продолжить задания с заданными идентификаторами или все задания определенного пользователя. Например, команда
$> llhold fen1.157.0
приостановит продвижение в очереди задания с идентификатором fen1.157.0, а команда
$> llhold -r -u pozdneev
продолжит продвижение всех приостановленных заданий пользователя pozdneev.
Команда llmodify позволяет изменить указанные при запуске параметры задания, находящегося в очереди. Например,
$> llmodify -C small fen1.157.0
изменит класс задания с идентификатором fen1.157.0 на small.
Управлять продвижением своих задач в очереди друг относительно друга можно путем изменения их приоретита. Например, чтобы понизить на 5 единиц приоритет задачи, нужно выполнить команду
$> llprio -5 fen1.157.0
Список доступных классов заданий можно получить, выполнив команду
$> llclass
Подробная информация о каждом классе доступна с помощью ключа -l:
$> llclass -l large
Чтобы получить подробную информацию о статусе машины, очередью заданий которой управляет LoadLeveler, выполните команду
$> llstatus -l
На Blue Gene/P ключ -b выдаст дополнительную информацию, специфичную для данной системы.
Информация о предопределенном разделе доступна с помощью ключа -P:
$> llstatus -P R00-R01
Если вместо имени конкретного раздела указать значение all, то будет выведена информация обо всех предопределенных разделах.
Текст составлен на основе материала книги «Tivoli Workload Scheduler LoadLeveler: Using and Administering» (Version 3 Release 4.3)