TORQUE
http://www.adaptivecomputing.com/products/open-source/torque/
- 環境
- Ubuntu 12.04 LTS Precise Pangolin
- Torque 2.4.16
Usage
Pythonのvirtualenvは計算ノードに引き継がれないので、 メインのコマンドの前に明示的にactivateする必要あり:
echo ". ~/.virtualenv/project/bin/activate && ./a.out" | /usr/bin/qsub [options]
Installation
http://tech.ckme.co.jp/torque.shtml
http://www.clusterresources.com/torquedocs/
http://www.adaptivecomputing.com/resources/docs/torque/2-5-9/index.php
Compute node
-
torque-mom
とtorque-client
をインストール:sudo apt-get install torque-mom torque-client
-
/etc/hosts
を確認。 ヘッドノードのホスト名が解決できるように:192.168.0.254 charles
ヘッドノードが複数のインターフェイスを持つ場合は 計算ノードから見えるIPを記述した行が一番上になるようにする。 そうしないと
qsub
でキューを出しても実行されず、 以下のような警告が静かに書き出される:sudo momctl -d3 WARNING: invalid attempt to connect from server 192.168.0.254:1022 (server not authorized) less /var/spool/torque/mom_logs/2012xxxx pbs_mom;Job;process_request;request type QueueJob from host charles rejected (host not authorized) pbs_mom;Req;req_reject;Reject reply code=15008(Access from host not allowed, or unknown host MSG=request not authorized), aux=0, type=QueueJob, from PBS_Server@charles
-
ヘッドノードのホスト名を
/etc/torque/server_name
に設定:charles
-
/var/spool/torque/mom_priv/config
に設定記述 (ref. MOM Configuration)/home
を NFSマウントしてるのでscp
しないように:$usecp *:/home /home
ログファイルの末尾に計算ノードの名前を追加:
$log_file_suffix %h
-
pbs_mom
を再起動:sudo service torque-mom restart
Head node
-
torque-server
をインストール:sudo apt-get install torque-server
-
pbs_server
が動いてしまっていたらkill
:ps aux | grep pbs
-
/etc/hosts
を確認。 計算ノードのホスト名が解決できるように:192.168.0.1 node01 192.168.0.2 node02 192.168.0.3 node03
-
ヘッドノードのホスト名を
/etc/torque/server_name
に設定:charles
-
計算ノードの情報を
/var/spool/torque/server_priv/nodes
に書き込む:node01 np=4 node02 np=4 node03 np=4
np
はコア数 -
/var/spool/torque/spool
のパーミションを設定:sudo chmod 777 /var/spool/torque/spool/ sudo chmod o+t /var/spool/torque/spool/
-
pbs_server
を新規作成:sudo pbs_server -t create
-
pbs_server
の設定 (ref. Server Parameters):sudo qmgr -c "create queue batch queue_type=execution" sudo qmgr -c "set queue batch priority=0" sudo qmgr -c "set queue batch resources_default.nodes=1" sudo qmgr -c "set queue batch resources_default.ncpus=1" sudo qmgr -c "set queue batch resources_default.walltime=96:00:00" sudo qmgr -c "set queue batch keep_completed=3600" sudo qmgr -c "set queue batch enabled=true" sudo qmgr -c "set queue batch started=true" sudo qmgr -c "create queue low queue_type=execution" sudo qmgr -c "set queue low priority=-255" sudo qmgr -c "set queue low resources_default.nodes=1" sudo qmgr -c "set queue low resources_default.ncpus=1" sudo qmgr -c "set queue low resources_default.walltime=96:00:00" sudo qmgr -c "set queue low keep_completed=3600" sudo qmgr -c "set queue low enabled=true" sudo qmgr -c "set queue low started=true" sudo qmgr -c "create queue high queue_type=execution" sudo qmgr -c "set queue high priority=255" sudo qmgr -c "set queue high resources_default.nodes=1" sudo qmgr -c "set queue high resources_default.ncpus=1" sudo qmgr -c "set queue high resources_default.walltime=96:00:00" sudo qmgr -c "set queue high keep_completed=3600" sudo qmgr -c "set queue high enabled=true" sudo qmgr -c "set queue high started=true" sudo qmgr -c "set server default_queue=batch" sudo qmgr -c "set server scheduling=true" sudo qmgr -c "set server allow_node_submit = True"
-
pbs_server
を再起動:sudo service torque-server restart sudo service torque-scheduler restart
-
計算ノードの認識を確認 (
state = free
):pbsnodes -a
-
試しにジョブを投入:
echo "sleep 30" | qsub
-
実行されているか確認 (
S
の下がR
なら走ってる):qstat
Maintenance / Trouble Shooting
Head node
設定確認:
qmgr -c 'p s'
計算ノードの認識を確認:
pbsnodes -a
投入したジョブの状態を確認:
qstat
qstat -q
ログを見る:
less /var/spool/torque/server_logs/2012xxxx
less /var/spool/torque/sched_logs/2012xxxx
サービス再起動:
sudo service torque-server restart
sudo service torque-sched restart
計算ノードが落ちたあと qstat
リストに残ってしまうジョブを消す:
sudo qdel -p
Compute node
状態確認:
sudo momctl -d3
ログを見る:
less /var/spool/torque/mom_logs/2012xxxx
サービス再起動:
sudo service torque-mom restart