Torqueのインストール
注意: 以下の設定では、NIS+NFSで組んだシステム内のノード間を跨いでのMPIは実行できない。1スレッド並列のみならず、MPI並列に関しても、ノード内の利用に限られる。
これは、torqueの設定ではなくて、そもそもMPIの設定に関連した不足に起因する可能性が高い。MPIの環境構築や基本コマンドのまとめ - Qiita (2019/08/19)
CentOS 6
一先ず、単一の計算機を自分自身を計算用サーバーとして、ジョブを管理するtorqueをインストール。
OSはCentOS release 6.9 (Final)。
参考にしたURL: Installing TORQUE
トラブルシューティング
trqauthd
が起動できない
インストールの過程で、/etc/hosts
に、IPと自身ホスト名を書いておかないと、# service trqauthd start
の所でこける。
qsub
もqstat
も通るが、ジョブステータスがQ
になって実行されない:問題解決(2019/01/04)
Installing TORQUEにはなかった以下の設定をする必要がある。
$(TORQUE_SOURCE)/contrib/init.d/pbs_sched
を/etc/init.d/
に置いて# service pbs_sched start
でpbs_sched
デーモンを起動する。
CentOS 7
いくつかのウェブページにあった
yum install -y epel-release
yum install -y torque-client torque-mom torque-server torque-scheduler
は、手元のCentOS 7.5.1804, 7.3.1611では使えなかった。
上記CentOS6に対して行った手順に乗っ取ってこれらのCentOS 7に対しては適用した。
念頭にあるのはCentOS7(研究室内新設サーバー)の設定メモ - Qiitaに書いた環境へのtorqueのインストール。
torqueサーバーへのインストール
# 必要なライブラリをインストール
yum install openssl-devel libtool-devel libxml2-devel gcc gcc-c++
# ソースをgit cloneして、configureを作成
git clone https://github.com/adaptivecomputing/torque.git -b 5.0.3 ./torque-5.0.3
cd ./torque-5.0.3
./autogen.sh
# ビルド
./configure
make
make install
trqauthd
デーモンの設定
cp contrib/init.d/trqauthd /etc/init.d/
chkconfig --add trqauthd
echo /usr/local/lib > /etc/ld.so.conf.d/torque.conf
ldconfig
service trqauthd start
/var/spool/torque/mom_priv/config
に設定を書き込む。例えば
$pbsserver hoge001 # hostname running pbs server
$logevent 225 # bitmap of which events to log
severdb
をtorque.setup
スクリプトで初期化
./torque.setup root
ノードの情報を/var/spool/torque/server_priv/nodes
(このファイルは自分で作る)に記載。例えば
hoge001 np=12 properties1 properties2
hoge002 np=12 properties3
hoge003 np=12 properties4
pbs_server
, pbs_mom
, pbs_sched
デーモンの設定:常駐サービスに追加して、自動起動化して、(再)起動
cp contrib/init.d/pbs_server contrib/init.d/pbs_mom contrib/init.d/pbs_sched /etc/init.d/
chkconfig --add pbs_server
chkconfig --add pbs_mom
chkconfig --add pbs_sched
service pbs_server restart
service pbs_mom start
service pbs_sched start
torqueクライアントへのインストール
# 必要なライブラリをインストール
yum install openssl-devel libtool-devel libxml2-devel gcc gcc-c++
# ソースをgit cloneして、configureを作成
git clone https://github.com/adaptivecomputing/torque.git -b 5.0.3 ./torque-5.0.3
cd ./torque-5.0.3
./autogen.sh
# ビルド hoge001をサーバーに
./configure --with-default-server=hoge001
make
make install
# trqauthd デーモンの設定
cp contrib/init.d/trqauthd /etc/init.d/
chkconfig --add trqauthd
echo /usr/local/lib > /etc/ld.so.conf.d/torque.conf
ldconfig
service trqauthd start
# pbs_mom デーモンの設定
cp contrib/init.d/pbs_mom /etc/init.d/
chkconfig --add pbs_mom
service pbs_mom start
トラブルシューティング
queueに入ったジョブがIDの順番通りに流れない
同じ計算資源を要求するジョブ89.hoge001
と90.hoge001
があったときに、90.hoge001
から計算が流れる。
2019/2/6現在、未解決。
Priorityが反映されない
qmgr -c "set queue highp priority=50"
でhighp queueのプライオリティを50に設定し、qmgr -c "p s"
ではPriority =50
になっているが、#PBS -q highp
でhighp queueを指定しても、qstat -f
でpriorityを確認するとデフォルト値の0のまま。ただし、このqueueの実行はでき、qstat -q
を叩くと認識はされている模様。
但し、ジョブの実行順序を眺めているとpriorityが0のデフォルトキューよりも先に実行されるため、高いプライオリティが外からは判断できない形で反映されている可能性が高い。
pbs_server
, pbs_mom
, pbs_sched
, trqauthd
をrestartしても問題は解決せず。
その後停電に伴い、全筐体の再起動をしても、問題は解決せず。
2019/09/27現在、未解決。
公開鍵認証 パスフレーズありにすると出力、エラー出力が届かない
ログインノードへのアクセスのセキュリティを上げるために実験的に公開鍵認証でのログインにしてみた。公開鍵認証ではセキュリティ向上を意図して、パスフレーズが設定されている。
するとその後から、hoge.o1234
, hoge.e1234
,が届かなくなってしまった。
2019/11/29現在未解決。
Torqueの設定ファイルとか使い方
# ノードの状況の確認(state=freeになっていれば使える)
pbsnodes -a
# ルートサーバーの名前
/var/spool/torque/server_name
#ぶら下がっているノードの情報
/var/spool/torque/server_priv/nodes
#ノードのconfiguration(よく理解していない)
/var/spool/torque/mom_priv/config
#キューの設定内容の確認
$ qmgr -c 'p s'
qmgr
でtorqueの挙動を変える
# `qstat`で他のユーザーの使用状況を表示したい
qmgr -c "set server query_other_jobs = True"
# 投げられたジョブを出来るだけ同じ計算機に詰めたい:多くのコアが空いたノードが出来やすくなる
sudo qmgr -c 'set server node_pack=true'
# QNAMEという実行可能なキューを設定する
qmgr -c "create queue QNAMEh queue_type=execution"
# QNAMEで単一ユーザーが実行可能なjob数を3にする
qmgr -c "set queue QNAME max_user_run = 3"
# QNAMEで実行可能なjob数を3にする
qmgr -c "set queue QNAME max_running = 3"
# QNAMEで最長実行時間を72時間にする
qmgr -c "set queue QNAME resources_max.walltime = 72:00:00"
参考
» Torque(計算ノード編)
» Torque(サーバ編)
Torque ユーザーマニュアル: pdf注意
TORQUE - ArchWiki
脚注
-
qstat -a
等でノードの使用状況を見ると、あたかも複数のノードにジョブが立ち上がっているように見えるが、実際にノードにログインしてみてみると、特定のノードで全て計算が立ち上がっている。 ↩