(2013/01/20)

パッチジョブ管理システム PBS の実装の一つである TORQUE を導入してみた。 オリジナルは OpenPBS というソフトウェアらしいが、現在はメンテされていないとのこと。

今回は azusa が管理ノード (ヘッドノード) かつ計算ノードという構成。

インストール

Ubuntu Precise LTS のリポジトリにあったので、そちらをさくっと導入。

# aptitude install torque-server torque-mom

torque-server は管理ノード向け、torque-mom は計算ノード向けなので、これらを分割する場合には片方だけでいいと思う (未確認)。 torque-server をインストールすると他にも torque-client, torque-scheduler が自動的にインストールされるはず。 これらはそれぞれ、

という感じだと思う。

サーバ名を設定する。

# vi /etc/torque/server_name
azusa

設定

設定ファイルは /var/spool/torque 以下。 普通とは違って /etc とかではないので注意。

計算ノードの設定。 ファイルが存在しないのでちょっと不親切。

# vi /var/spool/torque/server_priv/nodes
azusa np=4

np の後には計算ノードのコア数を書く。 GPU 数の指定とかもできるらしいけど、Ubuntu のリポジトリ内のものはバージョンが古すぎて対応していない (2.5.4 以降で対応)。

続いてサーバ (主にキュー) の設定をする。 root 権限で qmgr を叩くとコマンドを受け付ける感じになるので、以下を入力。

# スケジューリングの有効化。スケジューリングしなかったらどうなるの?
set server scheduling=true
# デフォルトキュー「batch」を作成
create queue batch queue_type=execution
set queue batch started=true
set queue batch enabled=true
set queue batch resources_default.nodes=1
# 最大実行時間。適当に十日ぐらい
set queue batch resources_default.walltime=240:00:00
set server default_queue=batch
# 計算ノードからジョブを投げるのを許可
set server allow_node_submit = True
# メール送信者のドメイン名を指定
set server mail_domain=epii.jp

設定が正しくできたかを確認するには、

$ qmgr -c "print server"

とするとよい。

動作確認

実際にジョブを投げるには qsub コマンドを使う。

$ qsub
echo "Hello, world!" >~/TORQUE-test.txt

標準出力 (stdout)、および標準エラー出力 (stderr) に吐かれた内容が qsub を実行したディレクトリに STDIN.(e|o)(JOB_NUM) という名前のファイルにコピーされる。

ジョブの実行状況を確認するには qstat コマンドを使う。

$ qstat
Job id                    Name             User            Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
2.azusa                   STDIN            epii                   0 R batch          

こんな感じになるはず。

ソフトウェア/TORQUE (last edited 2013-01-20 16:24:33 by epii)