Запуск заданий
Запуск заданий происходит через стандартный планировщик IBM LoadLeveler. При постановке задания в очередь пользователь может указать число процессоров и максимальное время счета (по умолчанию 1 процессор и 10 минут) и другие параметры. При наличии достаточного числа свободных процессоров задание начнет выполняться. После постановки на счет задание будет выполняться не больше указанного времени, если оно не успеет завершиться само - его удалит планировщик.
На данный момент все задания запускаются в режиме
test, это означает, что максимальное время выполнения задания ограничено 30 минутами.
Постановка в очередь Для обращения к планировщику используются специальные скрипты
ompsubmit и
mpisubmit.
ompsubmit - для заданий, использующих OpenMP
mpisubmit - для заданий, использующих MPI
Синтаксис и семантика их использования следующие:
[ параметры скрипта ] [ параметры задачи ]
-
w -
n -
m -
stdout -
stdin -
stderr Обязательным параметром является только имя задания, для остальных параметров существуют умолчания.
ключ |
Наименование |
Значение по умолчанию |
Примечание |
-w |
лимит счетного времени |
10 минут |
предполагаемое время счета задания в формате чч:мм:сс или сс, или мм:сс; |
-n |
число процессоров |
1 |
требуемое число процессоров,
максимально 16
|
-m |
почтовый адрес |
<username>@regatta.cmc.msu.ru |
На данный адрес будет послана информация по завершению задачи |
-stdout |
файл для потока вывода |
Имя_задания.nnnn.out
|
в каталог, из которого происходила постановка задания в очередь. |
-stderr |
файл для потока ошибок |
имя_задания.nnnn.err
|
в каталог, из которого происходила постановка задания в очередь. |
-stdin |
файл для потока ввода |
|
|
Каждому заданию планировщик присваивает
уникальное имя regatta.nnnn.0, где nnnn - номер задания. Для постановки
"обычных' последовательных заданий и OpenMP заданий в очередь
используется скрипт
ompsubmit.
Примеры:
<br
/>
ompsubmit my_program поставит my_program в очередь для
работы на 1 процессоре, не более 10 минут.
ompsubmit -w
25:00 -n 4 my_omp_program its_parameters запустит задание
my_omp_program с использованием OpenMP на 25 минут на 4-х процессорах, и
передаст ему в качестве параметров командной строки "its_parameters".
ompsubmit -n 16 -w 30:00 -m user@cmc.msu.ru -stdout /home/guru/output/run_1.out prog
запустит
задание prog на 16 процессорах на 30 минут. По завершении будет
отправлено письмо по адресу
user@cmc.msu.ru
и стандартный поток вывода будет перенаправлен в файл /home/guru/output/run_1.out. Этот подход можно использовать для разделения результатов в случае, если необходимо запустить несколько экземпляров одной и той же программы.
Для постановки заданий с использованием
MPI, соответствующим образом откомпилированных используется
mpisubmit.
mpisubmit -w 25:00 -n 16 my_mpi_program 0.001 Данная команда запустит задание с использованием MPI на 25 минут на 16-ти процессорах.
Просмотр состояния очереди Для просмотра состояния очереди используется команда
llq.
ondreich@regatta:~> llq
Id Owner Submitted ST PRI Class Running On
------------------------ ---------- ----------- -- --- ------------ -----------
regatta.81325.0 zhukov 6/20 19:10 R 50 test_class regatta2
regatta.81326.0 ondreich 6/20 19:11 R 50 test_class regatta2
regatta.81327.0 ondreich 6/20 19:11 R 50 test_class regatta2
regatta.1.0 tiger 12/12 18:32 HS 50 test_class
4 job step(s) in queue, 0 waiting, 0 pending, 3 running, 1 held, 0 preempted
Команда выводит на экран текущее состояние очереди. Для каждого задания выводится идентификатор задания (Id), имя владельца (Owner), дата постановки в очередь или запуска (если задача уже стартовала) (Submitted), текущий статус (ST), приоритет (PRI) класс задания (Class) и название машины на которой запущена задача (Running On). Текущий статус (ST) может принимать следующие значения:
Ru ( Run ) -- задание выполняется в данный момент;
St ( Starting ) -- задание запускается, производиться предварительная работа;
Id ( Idle ) -- задание ожидает своей очереди на запуск;
Pe ( Pending ) -- задание временно приостановлено.
Более подробную информацию можно получить по команде:
llq -l Для конкретной задачи по команде:
llq -l <
id задачи (колонка Id)>. Причину, по которой задание не ставится на выполнение, можно выяснить по команде:
llq -s <
id задания>.
Удаление задания из очереди Для того чтобы удалить задание из очереди или снять его со счёта, нужно воспользоваться командой
llcancel <id задания> Например:
llcancel regatta.81327.0 llcancel -u $USER: удаляет из очереди все задания определённого пользователя.
Например:
llcancel -u oz завершит все задачи пользователя oz, естественно если у вызывающего команду есть права завершать задачи пользователя oz.