1 1 Torque: установка

Установка системы Torque может быть выполнена путем компиляции из исходников, которые доступны для загрузки с официального сайта проекта. В операционной системе Ubuntu Linux Torque имеется в репозиториях пакетов и может быть установлен в систему обычным для Ubuntu образом - с помощью команды apt-get или менеджера пакетов Synaptic.

Установка из исходников системы Torque на главном компьютере кластера достаточно проста. Для этого скачанный архив программы должен быть развернут в какой-либо каталог, после чего, внутри этого каталога необходимо выполнить обычную для данного действия последовательность команд:

./configure --prefix=/usr
make
sudo make install

После установки Torque требуется перекомпиляция системы MPI для того, чтобы она знала о существовании менеджера ресурсов и могла взаимодействовать с ним. Компиляция MPI осуществляется точно так же, как это было ранее описано на этом сайте.

Настройка начальной очереди заданий будет нашим следующим шагом. Сделать это можно выполнив (в каталоге с исходниками) команду ./torque.setup <ИмяПользователя>. Где <ИмяПользователя> - это имя пользователя, который будет администратором Torque, например root:

./torque.setup root

Установка менеджера ресурсов на вычислительных узлах кластера не требует полной установки системы Torque. Вместо этого на главном компьютере необходимо создать саморазворачивающийся архив системы с помощью команды

make packages

запущеной в каталоге с исходниками Torque. В результате будет создано несколько исполняемых скриптов. Нас будет интересовать скрипт torque-package-mom-linux-i686.sh. Этот скрипт мы должны скопировать на все вычислительные узлы кластера и запустить его на исполнение на этих узлах:

./torque-package-mom-linux-i686.sh --install

Конфигурация Torque на вычислительных узлах кластера в минимальном варианте заключается в указании доверенного сервера, который будет иметь право управлять заданиями на узле. Выполнить это можно записав в файле /var/spool/torque/server_name имя хоста вашего сервера (консоли кластера). Обычно это не требуется, поскольку делается автоматически. Единственно, что я рекомендую, так это проверить, правильно ли резольвится это имя. Посмотрите, что записано в этом файле (например там будет записано "supergate") и пропингуйте это имя. Если что-то не так, то пропишите это имя в файле /etc/hosts.

Настройка Torque-сервера заключается в задании списка вычислительных узлов кластера в файле /var/spool/torque/server_priv/nodes (который надо создать). В этом файле должны быть перечислены имена всех вычислительных узлов, один узел - одна строчка. После этого необходимо остановить сервер, чтобы при следующем его запуске список узлов вступил в силу. Для этого запускаем команду sudo qterm без параметров.

Проверка системы. Для проверки работоспособности системы на всех вычислительных узлах запускаем демон pbs_mom. Далее на главном компьютере запускаем сервер Torque - демон pbs_server. Проверка узлов осуществляется командой pbsnodes -a, которая выдасть на консоль нечто вроде этого:

mpiuser@supergate:~$ pbsnodes -a
supergate
     state = free
     np = 1
     ntype = cluster
     status = opsys=linux,uname=Linux supergate 2.6.28-14-generic #47-Ubuntu SMP Sat Jul 25 00:28:35 
     UTC 2009 i686,sessions=2524 13213 9091 9136 9353 9473 9521 8948 9868 9899 10149 10692 10101 13099 
     13242 13259 13268 13277 13288 13341 13359 13383 28122 32075 32076 32077 32078 32079 32080 32081 
     32082 32083 32084 32085 32086 32087 32091 32093,nsessions=38,nusers=8,idletime=380,totmem=3123024kb,
     availmem=2583100kb,physmem=1018552kb,ncpus=2,loadave=0.00,netload=2253226200,state=free,jobs=,varattr=,
     rectime=1250488593
                    
LENA
     state = free
     np = 1
     ntype = cluster
     status = opsys=linux,uname=Linux Lena2 2.6.28-14-generic #47-Ubuntu SMP Sat Jul 25 00:28:35 
     UTC 2009 i686,sessions=14835 2176 18833 2603 2455 3053 14938 14949 15015 15024 15034 15103 
     15126 15170 15181 15603,nsessions=16,nusers=4,idletime=1437,totmem=3026692kb,availmem=2362384kb,
     physmem=1026640kb,ncpus=2,loadave=0.23,netload=1604969560,state=free,jobs=,varattr=,rectime=1250488595

mpiuser@supergate:~$            

Состояние узлов state = free говорит о том, что узлы работоспособны и готовы к принятию заданий.

Проверка очереди заданий может быть осуществлена путем добавления в очередь простой задачи:

echo "sleep 30" | qsub

Задача эта, как видите, ничего не делает, кроме как ждет 30 секунд, по завершении которых благополучно умирает. Проверим состояние очереди командой qstat, которая покажет нам что-то вроде этого:

mpiuser@supergate:~$ qstat
Job id                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
0.mail                    STDIN            mpiuser                0 Q batch
dima@supergate:~$                             

Статус задания (предпоследняя колока) имеет значение "Q", что говорит нам о том, что задание находится в очереди и ждет, когда ей будет разрешено начать работу. Ждать оно будет долго, до тех пор пока планировщик не решит, что пришло ее время. Однако планировщик в системе отсутствует. Чтобы он присуствовал, запустим его командой sudo pbs_sched. Через какое-то время мы увидим, что задание начало работать:

mpiuser@supergate:~$ qstat
Job id                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
0.mail                    STDIN            mpiuser                0 R batch
dima@supergate:~$                             

То есть статус задания измеился с "Q" (Queued) на "R" (Run), а еще немного погодя, статус изменится на "C" (Completed):

mpiuser@supergate:~$ qstat
Job id                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
0.mail                    STDIN            mpiuser         00:00:00 C batch
dima@supergate:~$                             

Если все прошло именно так, как описано, то значит система Torque у нас работает и мы можем ее использовать для запуска наших параллельных задач.


Copyright © 1998-2011 Юрий Сбитнев