Для управления заданиями на кластерax ЦКП используется свободно распросраняемая версия диспетчерской системы OpenPBS (Portable Batch System - PBS). PBS обеспечивает управление выполнением заданий на широком наборе конфигураций вычислительных систем:
Основные характеристики системы:
PBS состоит из четырех основных модулей, каждый из которых может устанавливаться на одном или нескольких вычислительных узлах, обслуживаемых системой :
В настоящее время системой PBS в суперкомпьютерном центре ЮФУ обслуживаются следующие вычислительные ресурсы:
В соответствии с этим создано три потока очередей, по одному для каждой архитектуры с именами IBMX, TP, WSD. Внутри каждого из потоков дополнительного разбиения (например, по времени решения задачи) не сделано. Используется устанавливаемый по умолчанию планировщик FIFO (первый вошел первый вышел), сконфигурированный для эксклюзивного выполнения одного счетного процесса на каждом узле. PBS автоматически распределяет задания по свободным узлам заданной архитектуры. Разумеется, никакого распараллеливания PBS не выполняет. Система только запускает указанное числе процессов на выделенных для задачи узлах. Чтобы программа могла выполняться более, чем на одном узле, она должна быть параллельной.
Отдельной диспетчерской системой обслуживаются учебные ресурсы:
Для учебного кластера создана очередь EDU .
#!/bin/sh
###PBS script to run task
#PBS -l nodes=1:IBMX
cd $HOME
cd prog/parallel/aztec
./progname
В данном случае будет сформирована однопроцессорная задача для решения на кластере IBMX из файла с именем progname и с заказом
времени по умолчанию 1 час. Конструкции #PBS распознаются командой
qsub
и устанавливают лимиты для задачи. Командой cd указывается путь
к исполнимой программе. Тогда запуск программы progname должен быть
произведен командой:
qsub -q IBMX ibmx1
Для запуска параллельной программы на 4-х процессорах кластера IBMX используется тот же самый формат команды, но содержимое скрипта должно быть другим (скрипт ibmx4)
#!/bin/sh
###PBS script to run parallel task
#PBS -l walltime=03:00:00
#PBS -l nodes=4:IBMX
cd $HOME
cd prog/parallel/aztec
mpirun -np 4 progname
Здесь заказано время счета 3 часа на 4-х узлах IBMX-кластера. Запуск выполняется командой:
qsub -q IBMX ibmx4
Несколько по-другому выполняется заказ процессоров на 2-х процессорных системах Alpha и SUN. Они трактуются как один узел с двумя процессорами, поэтому для запуска 2-х процессорной задачи на архитектуре SUN скрипт должен иметь вид:
#!/bin/sh
###PBS script to run task
#PBS -l walltime=10:00
#PBS -l nodes=1:ppn=2:SUN
cd $HOME
cd prog/parallel/aztec
mpirun -np 2 progname
Здесь строка #PBS -l nodes=1:ppn=2:SUN указывает, что используется
1 узел с двумя процессорами архитектуры SUN.
Аналогичный скрипт нужен и для компьютера Alpha, c заменой названия
архитектуры SUN на ALPHA.
Для однопроцессорных программ скрипт должен иметь вид:
#!/bin/sh
###PBS script to run task
#PBS -l walltime=30:00
#PBS -l nodes=1:ppn=1:ALPHA
cd $HOME
cd prog/parallel/aztec
./progname
Специальный вид должен иметь скрипт для запуска параллельных SMP-программ, использующих механизм многопоточности:
#!/bin/sh
#PBS -l walltime=1:00:00
#PBS -l nodes=1
#PBS -v OMP_NUM_THREADS=2
cd /export/home/victor/prog/bench
./mxmr2
При запуске программы через команду qsub
заданию присваивается уникальный целочисленный идентификатор, который представляет
собой номер запущенного задания. По этому номеру вы можете отслеживать
прохождение задания, снять задание со счета или из очереди и переместить
его в очереди относительно своих других заданий.
3) Результат работы программы без каких либо дополнительных
усилий с Вашей стороны будет записываться в файл и помещаться в тот каталог,
из которого было запущено задание. Имя выходного файла формируется автоматически
следующим образом:
<имя скрипта>.o<номер задания>, a в файл
<имя скрипта>.e<номер задания> - будет записываться стандартный
канал диагностики (ошибок).
Имя выходного файла можно изменить с помощью специальной опции команды
qsub.
Замечания:
а) программа не должна быть интерактивной, т.е. содержать ввод с клавиатуры;
б) постановка задания в очередь на любуй кластер может быть выполнена
с любой машины;
в) в случае, если у системы возникают проблемы с поиском пути, куда
должны записываться выходные файлы - они остаются в системном каталоге
/usr/spool/PBS/undelivered/ на той машине, где решалась задача.
ВНИМАНИЕ! PBS скрипт может быть создан без использования текстовых
редакторов. Для этого написана специальная команда qpbs , которая
в диалоговом режиме предлагает ввести необходимые параметры PBS скрипта.
В результате работы команды будет создан и записан в текущий каталог PBS
скрипт с именем, которое указывается в процессе диалога. Запросы имеют
достаточно понятный смысл. При заказе времени указывается число часов,
если необходимо указать и минуты, то часы отделяются от минут двоеточием:
ввод цифр 10 - означает 10 часов
ввод цифр 00:10 - означает 10 минут
Команда qpbs создает скрипт стандартного вида, который требует
корректировки в некоторых случаях, а именно, для для параллельных программ SMP типа.
О проблемах, связанных с работой диспетчерской системы, сообщайте:
по электронной почте: Виктор Николаевич Дацюк root@hpc.sfedu.ru
по телефону : 219-97-13