Конфигурация PBS на учебном кластере ЮФУ.

Диспетчерская система учебного кластера обслуживает единственную очередь заданий EDU, для которой установлены:
максимальный лимит времени 1 час
лимит времени по умолчанию 2 мин. .

Работа с диспетчерской системой

1) Компиляция программы как правило выполняется на управляющем сервере, однако допустимо использовать для компиляции любой из узлов. Пользователь должен войти в каталог с исходными модулями программы и запустить компиляцию программы с помощью команды вызова компилятора или команды make, если программа состоит из нескольких модулей. Пример Makefile для компиляции фортрановских программ.
2) Запуск исполнимой программы выполняется специальной командой qsub, c  помощью запускающего скрипта (командного файла), в котором указывается запускаемая программа и требуемые ресурсы (архитектура, число процессоров, время решения).
    qsub -q  <ARCH>  <script_name>
где <ARCH> - имя очереди, в которую ставится задание (возможное значение EDU)
< script_name> - имя запускающего скрипта, который может быть создан любым текстовым редактором.
В простейшем случае для запуска однопроцессорной программы на кластере EDU нужно сформировать файл  (например  с именем edu1)следующего содержания:

#!/bin/sh
###PBS script to run task
#PBS -l nodes=1:EDU
cd $HOME
cd prog/parallel/aztec
./progname
В данном случае будет сформирована однопроцессорная задача для решения на кластере IBMX из файла с именем progname и с заказом времени по умолчанию 2 мин. Конструкции  #PBS  распознаются командой qsub и устанавливают лимиты для задачи. Командой cd указывается путь к исполнимой программе. Тогда запуск программы progname должен быть произведен командой:

    qsub  -q  EDU  edu1

Для запуска параллельной программы на 4-х узлах кластера EDU используется тот же самый формат команды, но содержимое скрипта должно быть другим (скрипт edu4)

#!/bin/sh
###PBS script to run parallel task
#PBS -l walltime=1:00:00
#PBS -l nodes=4:EDU
cd $HOME
cd prog/parallel/aztec
mpirun -np 4 ./progname

Здесь заказано время счета 1 час на 4-х узлах EDU-кластера. Запуск выполняется командой:

    qsub -q EDU edu4

Специальный вид должен иметь скрипт для запуска параллельных SMP-программ, использующих механизм многопоточности.
Для запуска программы на 2-х ядрах с двумя потоками:

#!/bin/sh
#PBS -l walltime=1:00:00
#PBS -l nodes=1:EDU
#PBS -v OMP_NUM_THREADS=2
cd /export/home/victor/prog/bench
./mxmr2

При запуске программы через команду qsub заданию присваивается уникальный целочисленный идентификатор, который представляет собой номер запущенного задания. По этому номеру вы можете отслеживать прохождение задания, снять задание со счета или из очереди и переместить его в очереди относительно своих других заданий.
3) Результат работы программы без каких либо дополнительных усилий с Вашей стороны будет записываться в файл и помещаться в тот каталог, из которого было запущено задание. Имя выходного файла формируется автоматически следующим образом:
<имя скрипта>.o<номер задания>,   a в файл
<имя скрипта>.e<номер задания> - будет записываться стандартный канал диагностики (ошибок).
Имя выходного файла можно изменить с помощью специальной опции команды qsub.
Замечаниe:
В случае, если у системы возникают проблемы с поиском пути, куда должны записаться выходные файлы, то они остаются в системном каталог
/usr/spool/PBS/undelivered/ на той машине, где решалась задача.

ВНИМАНИЕ!  PBS скрипт может быть создан без использования текстовых редакторов. Для этого написана специальная команда qpbs , которая в диалоговом режиме предлагает ввести необходимые параметры  PBS скрипта.  В результате работы команды будет создан и записан в текущий каталог PBS скрипт с именем, которое указывается в процессе диалога. Запросы имеют достаточно понятный смысл. При заказе времени указывается число часов, если необходимо указать и минуты, то часы отделяются от минут двоеточием:
ввод цифр 1 - означает 1 час
ввод цифр  00:10 - означает 10 минут
Команда qpbs создает скрипт стандартного вида, который требует корректировки в некоторых случаях, а именно, для для параллельных программ SMP типа.
 

Команды управления заданиями

Помимо описанной кратко команды qsub, существует набор полезных команд, которые перечислим без детального рассмотрения. Подробное их описание существует пока только в англо-язычном варианте:
qdel - удаление задания
qhold - поставить запрет на  исполнение задания
qmove - переместить задание
qmsg - послать сообщение заданию
qrls - убрать запрет на исполнение, установленный командой qhold
qselect - выборка заданий
qsig - посылка сигнала ( в смысле ОС UNIX) заданию
qstat - выдача состояния очередей ( наиболее полезны команды qstat -a и qstat -q )
qsub - постановка задания в очередь
pestat - выдача состояния всех вычислительных узлов (нет описания )
xpbs  -  графический интерфейс для работы с системой PBS (требуется Х-сервер)
xpbsmon - графическая программа выдачи состояния вычислительных ресурсов (требует значительных усилий по настройке, нет описания в HTML формате, но есть man).

О проблемах, связанных с работой диспетчерской системы, сообщайте:
  по электронной почте: Виктор Николаевич Дацюк root@hpc.sfedu.ru
  по телефону : 219-97-13