PBS (Portable Batch System) — система пакетной обработки заданий, предназначенная для управления ресурсами высокопроизводительных вычислительных кластеров.
Команды PBS используются для постановки задания в очередь на выполнение, запуска на счет, мониторинга, модификации и снятия заданий, выдачи результатов.
Для большинства заданий пользователей вычислительной фермы используются очереди:
common и ib — очередь для параллельной фермы с Infiniband.
Все задачи можно запускать в очередь common , из которой они затем перераспределяются по очередям common и ib.
Критерий распределения:
— если заказано 2 — 80 ЦПУ, то задание пойдет в очередь ib и будет работать на Infiniband;
— если заказан 1 ЦПУ или больше 80, то задание пойдет в очередь common и будет работать на 1Gb Ethernet’е.
В процессе пакетной обработки автоматически инициализируются ряд переменных окружения, которые можно использовать в задании.
Некоторые команды. Использование/контороль/результаты.
Для запуска задач в batch систему необходимо:
1) Внимание! необходимо выполнить команду «pbspwstore» и ввести в ответ на 3 запроса 3 раза ваш AFS пароль Будьте предельно внимательны при вводе пароля, в случае ошибки ваши задания не смогут нормально завершаться. Команду «pbspwstore» повторять только при изменении AFS пароля; 2) создать файл задания pbs_script, в котором определить параметры, необходимые для работы задачи; Пример pbs_script: #!/bin/sh #PBS -l walltime=10:00:00, cput=01:00:00 #PBS -m abe #PBS -q common #PBS -M username@lxpub01 #PBS -r n cd $PBS_O_WORKDIR cc -o myprog myprog.c ./myprog Где : -l список ресурсов ( через «,») -walltime максимальное время выполнения -q имя очереди -m события, о которых следует извещать e-mail’ом: b — начало, e — завершение, a — прекращение работы по ошибке -M e-mail адрес, на который направляются все служебные сообщения о состоянии задачи -r (y/n) следует ли восстанавливать задачу, при перезагрузке узлов 3) запустить задачу в систему с помощью команды qsub .
Пример 1: qsub pbs_script
Пример 2 — необходимые параметры указаны в командной строке :
qsub -l walltime=10:00:00 -m abe -M username@lxpub01 -r n mpiexec $PBS_O_WORKDIR/program_name
В рабочей дирректории появляются 2 файла:
Имя_задачи.oИдентификатор — cодержит стандартный вывод (stdout),
Имя_задачи.eИдентификатор — содержит сообщение об ошибках (strerr)
Описание параметров и переменных :
man qsub,
man pbs_resources — ресурсы задачи,
man pbs_job_attributes — атрибуты задачи .
Значения некоторых часто используемых предопределенных переменных системы BATCH:
PBS_O_WORKDIR — абсолютный путь к текущему каталогу пользователя, из которого производился запуск пакетного задания;
TMPDIR — имя директории на счетным узле, создаваемой только на время выполнения задания;
PBS_QUEUE — имя очереди в которую посылается задача;
PBS_NODEFILE — список выделенных ЦПУ, на которых будет запущена задача (пример элемента списка: wni005.jinr.ru);
Контроль задачи: qstat .
состояние и контроль задачи осуществляется с помощью команды qstat , после ввода которой на экране появляется таблица, столбцы которой имеют следующие значения:
Job ID уникальный идентификатор задачи;
Username имя владельца задачи;
Queue название очереди, в которой находится задание
Jobname имя задания;
SessID идентификатор сессии (если задание в состоянии выполнения)
NDS число используемых ЦПУ;
TSK количество задач;
Req’d time планируемое время счета задачи;
Elap time общее процессорное время, использованное задачей на данный момент;
S состояние задачи: Q — находится в очереди, R — вычисляется, E — произошла ошибка при выполнении.
Пример : параметры очереди ib.
lxpub01:~ > qstat -Qf ib
Queue: ib
resources_max.cput = 50000:00:00
resources_max.nodect = 560
resources_max.walltime = 101:00:00
resources_min.nodect = 2
resources_available.nodect = 560
resources_default.cput = 50000:00:00
resources_default.walltime = 101:00:00
cput — maximum amount of CPU time used by all processes in the job.
Units: time.
max.nodect — максимальное число ЦПУ для параллельной задачи (для очереди ib);
max.walltime — максимальное астрономическое время счета задачи;
cput — максимальное количество процессорного времени, используемое всеми процессами в задании.
Эти параметры очереди устанавливаются администратором системы и могут быть изменены. Для сбалансированного задания параметров очереди нужно учитывать, что для walltime, cput и nodect примерно выполняется следующее соотношение:
астрономическое время (walltime) * число процессов (nodect) —
— процессорное время (cput)
(В приведенном примере параметров очереди ib максимальное счетное время задачи задано больше с учетом планируемого увеличения числа процессоров).
Требуемые значения этих параметров задаются в script-файле и в соответствии с запрашиваемыми ресурсами определяется приоритет и время ожидания в очереди. Задание не ставится в очередь, если превышены максимально допустимые значения параметров очереди. Запрашивать значения счетного и астрономического времени значительно больше требуемого не имеет смысла, т.к. задание с большей вероятностью дольше простоит в очереди.
Снять задачу со счета: qdel Job_ID.
Cсылки на script-файлы.
(автор Мицын В.В.), которые можно использовать как тест или диагностическую задачу для случаев:
— когда у пользователя что-то в batch-системе не работает ;
— тест для параллельных вычислений на нескольких процессорах для случая, когда все файлы лежат в AFS;