TORQUE 4.2.10 を Ubuntu 16.04 LTS にインストール


TORQUEとは

TORQUEはオープンソースのジョブスケジューラであり、ジョブを空いてる計算資源に順次投入してくれるソフトである。多数のジョブを並列的・逐次的に処理するクラスターなどでよく使われる。近年は多数のコアを搭載したCPUが普及してきてるので、クラスターではないコンピュータでもジョブスケジューラは役立つ。TORQUEの新しいバージョン(5.x, 6.x)は手元の環境ではうまく動かなかったので、4.2.10をインストールして使っている。

TORQUEのインストールと設定

必要なパッケージのインストール

sudo apt install openssl libssl-dev libxml2-dev libtool lsb-core

ホスト名が指定されているか確認

/etc/hosts にホスト名と使用しているIPアドレスが指定されているか確認する。
例えば192.168.0.101 TORQUE-Serverのように。
指定されていなければ編集する。

cat /etc/hosts
sudo nano /etc/hosts

TORQUE 4.2.10 のダウンロードとインストール

http://www.adaptivecomputing.com/support/download-center/torque-download/ からダウンロードできる。

tar xvzf torque-4.2.10.tar.gz
cd torque-4.2.10
./configure
make
sudo make install

ホスト名を指定し、trqauthdデーモンを設定・起動させる。

echo $HOSTNAME | sudo tee /var/spool/torque/server_name
sudo cp contrib/init.d/debian.trqauthd /etc/init.d/trqauthd
sudo update-rc.d trqauthd defaults
echo /usr/local/lib > sudo tee /etc/ld.so.conf.d/torque.conf
sudo ldconfig
sudo service trqauthd start

キューの設定

sudo ./torque.setup $USER
sudo qmgr -c 'p s' # check qmgr settings

trqauthdとpbs_serverを一度停止して、ヘッドノードと計算ノードを設定する。

sudo qterm
sudo service trqauthd stop
ps aux | grep pbs
ps aux | grep trq

計算ノードを設定

/var/spool/torque/server_priv/nodesに計算用のホスト名と割り当てるスレッドの数を指定する。書式はTORQUE-Server np=36のようにホスト名と割り当てるスレッドの数である。ここでは、TorqueサーバーとTorqueクライアントは同一のマシンである。

echo "$HOSTNAME np=`cat /proc/cpuinfo | grep processor | wc -l`" | sudo tee /var/spool/torque/server_priv/nodes
sudo nano /var/spool/torque/server_priv/nodes

一行目では作業中のコンピュータの$HOSTNAMEとスレッド数を/var/spool/torque/server_priv/nodesに書き込んでいる。全てのスレッドを計算に割り当てると同一コンピュータ上の他の作業やプロセスに支障が出そうなので、エディタを使ってTORQUEで使用するスレッド数を減らす。

ヘッドノードを設定

echo "\$pbsserver $HOSTNAME" | sudo tee /var/spool/torque/mom_priv/config

他のTORQUEデーモンを設定し、システムの起動時に自動的に開始するようにする

# 他のtorqueデーモンを設定する
sudo cp contrib/init.d/debian.pbs_server /etc/init.d/pbs_server
sudo cp contrib/init.d/debian.pbs_sched /etc/init.d/pbs_sched
sudo cp contrib/init.d/debian.pbs_mom /etc/init.d/pbs_mom
sudo update-rc.d pbs_server defaults
sudo update-rc.d pbs_sched defaults
sudo update-rc.d pbs_mom defaults

# torqueデーモンを起動する
sudo service trqauthd start
sudo service pbs_server start
sudo service pbs_sched start
sudo service pbs_mom start

# torqueデーモンが起動しているか確認。
ps aux | grep pbs
ps aux | grep trq

計算用のコンピュータ(TORQUEクライアント)が設定されているか確認

pbsnodes -a

小さなジョブを投げて動作確認

echo "sleep 30" | qsub
qstat

参考