Создание кластера с использованием менеджера ресурсов Torque/PBS

Автор ihammers, 10 апреля 2015, 07:20:12

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

ihammers

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

Для начала потребуется проверить видят ли ноды друг друга:

~# ping -c 5 node1
~# ping -c 5 node2
...
~# ping -c 5 nodeN


Конфигурация «главной» ноды:
После чего потребуется развернуть систему контроля ресурсами. Для этого потребуется установить следующие пакеты для сборки Torque:

~$ sudo apt-get install libssl-dev libxml2-dev gcc g++ make libboost-dev make
~$ wget -c http://wpfilebase.s3.amazonaws.com/torque/torque-5.1.0-1_4048f77c.tar.gz
~$ tar -xzf ../torque-5.1.0-1_4048f77c.tar.gz
~$ cd torque-5.1.0-1_4048f77c/
~$ ./configure
~$ make
~$ make packages
~$ sudo ./torque-package-server-linux-x86_64.sh --install
~$ sudo ./torque-package-clients-linux-x86_64.sh --install
~$ sudo ./torque-package-devel-linux-x86_64.sh --install
~$ sudo ./torque-package-doc-linux-x86_64.sh --install
~$ sudo ./torque-package-mom-linux-x86_64.sh --install
~$ sudo echo /usr/local/lib > /etc/ld.so.conf.d/torque.conf
~$ sudo ldconfig

* ./torque.setup root при использовании этого возникает ошибка.

Далее производим добавление скриптов в автозагрузку:

~$ sudo cp contrib/init.d/debian.pbs_mom /etc/init.d/
~$ sudo cp contrib/init.d/debian.trqauthd /etc/init.d/
~$ sudo cp contrib/init.d/debian.pbs_server /etc/init.d/
~$ sudo cp contrib/init.d/debian.pbs_sched /etc/init.d/
~$ sudo update-rc.d debian.pbs_mom defaults
~$ sudo update-rc.d debian.trqauthd defaults
~$ sudo update-rc.d debian.pbs_server defaults
~$ sudo update-rc.d debian.pbs_sched defaults
~$ sudo service debian.trqauthd start
~$ sudo pbs_server -t create


Дальше приступаем к настройке «параметров по умолчанию»:

~$ sudo qterm
~$ sudo pbs_server
~$ sudo qmgr
create queue batch
set queue batch queue_type = Execution
set queue batch resources_max.mem = 100gb
set queue batch resources_max.procs = 100
set queue batch resources_max.walltime = 01:00:00
set queue batch enabled = True
set queue batch started = True
set server scheduling = True
set server managers = root@torqueserver
set server default_queue = batch
set server log_events = 255
set server mail_from = root
set server scheduler_iteration = 600
set server node_check_rate = 150
set server tcp_timeout = 6

* в параметре root@torqueserver требуется указывать полное доменное имя, без этого может возникнуть ошибка.
** название очередей -- «queue» может быть разным и иметь разные параметры.


Добавляем ноды на «главной» ноде:

~$ sudo nano /var/spool/torque/server_priv/nodes
---
#hostname np=x gpus=y
torqueserver np=4
torque1 np=2
torque2 np=2
---
~$ sudo service debian.pbs_server stop
~$ sudo nano /var/spool/torque/mom_priv/config
---
$pbsserver      torqueserver          # note: this is the hostname of the headnode
$logevent       255              # bitmap of which events to log
---

* в документации упоминается только работа с видеокартами от NVidia.

Конфигурация ноды:
Для начала потребуется перебросить установочные пакеты и стартовые скрипты.

~$ rsync -avP torque-package-{clients,mom}-linux-x86_64.sh user@torque4:
~$ rsync -avP contrib/init.d/debian.pbs_mom user@torque4:
~$ sudo ./torque-package-clients-linux-x86_64.sh --install
~$ sudo ./torque-package-mom-linux-x86_64.sh --install
~$ sudo echo /usr/local/lib > /etc/ld.so.conf.d/torque.conf
~$ sudo ldconfig
~$ sudo cp debian.pbs_mom /etc/init.d/
~$ sudo update-rc.d debian.pbs_mom defaults


Указываем в конфигурационных файлах «главную» ноду:

~$ sudo nano /var/spool/torque/mom_priv/config
---
$pbsserver      torqueserver          # note: this is the hostname of the headnode
$logevent       255              # bitmap of which events to log
---
~$ sudo service debian.pbs_mom restart


Для выдачи информации по серверу и нодам:

~$ sudo qmgr -c 'print  server'
~$ sudo pbsnodes -a


Дополнительные ссылки: 1, 2, 3, 4

Проверка работоспособности Torque/PBS:

NWChem

Установка NWChem:
~$ sudo apt-get install nwchem

Создаём PBS файл:

~$ cat test-nwchem.psb
#PBS -l nodes=2:ppn=2
#PBS -l walltime=0:10:00
#PBS -j oe

# change the current working directory to the directory where
# the input deck input.nw can be found
cd $PBS_O_WORKDIR

echo " "
echo "Starting job on `hostname` at `date`"
echo " "

# First load the NWChem module
#module load nwchem

# Invoke NWChem. mpirun is implicit in the nwchem startup script so
# we don't need to include it here
mpirun.openmpi -n 4 nwchem input.nw >& output.nwo

echo " "
echo "Completing job on `hostname` at `date`"


Создаём входной файл для расчётов:

~$ cat input.nw
echo

start molecule

title "Test pbs"
charge 0

geometry units angstroms print xyz autosym
   O       -3.85074        1.18486        0.00000
   H       -2.88074        1.18486        0.00000
   H       -4.17407        1.33361       -0.90235
end

basis
  * library 6-31G*
end

dft
  xc b3lyp
  mult 1
end

task dft optimize


Запуск расчётов производится с помощью следующей команды:

~$ qsub test-nwchem.psb


Данная инструкция протестирована (пока):
Ubuntu GNU/Linux 14.04 Server 64bit
Планируется протестировать на Debian GNU/Linux Jessie 64bit
Debian GNU/Linux Bookworm, LXQt/OpenBox: AMD Ryzen 5 5600G / 64Gb RAM
_______________________________
Debian GNU/Linux Bookworm, без графики: AMD Phenon X4 / 16Gb RAM
_______________________________
Debian GNU/Linux Bookworm, LXQt/OpenBox: Acer Aspire One 722 AMD C60 / 8Gb RAM / ATI HD6290