4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CentOSでのTorqueの設定

Last updated at Posted at 2018-12-24

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の所でこける。

qsubqstatも通るが、ジョブステータスがQになって実行されない:問題解決(2019/01/04)

Installing TORQUEにはなかった以下の設定をする必要がある。
$(TORQUE_SOURCE)/contrib/init.d/pbs_sched/etc/init.d/に置いて# service pbs_sched startpbs_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

severdbtorque.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.hoge00190.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"

参考:4.1 Queue Configuration

参考

» Torque(計算ノード編)
» Torque(サーバ編)
Torque ユーザーマニュアル: pdf注意
TORQUE - ArchWiki

脚注

  1. qstat -a等でノードの使用状況を見ると、あたかも複数のノードにジョブが立ち上がっているように見えるが、実際にノードにログインしてみてみると、特定のノードで全て計算が立ち上がっている。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?