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
参考
- http://tech.ckme.co.jp/torque.shtml
- http://qiita.com/hdoi/items/88d3cf93a32747acc7f3
- https://en.wikipedia.org/wiki/TORQUE
- TORQUE 4.2.10 Administrator Guide: http://www.adaptivecomputing.com/support/documentation-index/torque-resource-manager-documentation/
- https://ubuntuforums.org/showthread.php?p=11797874