まとめて投入した複数のバッチを順番に1本づつ実行させたい。投入ノードと計算ノードが同一かつ計算ノードが1つのみという単純構成。パッケージで入れたこともありすんなり出来たがメモしておく。
まずは pbs_server, pbs_scheduler, pbs_mom をインストール
apt-get install torque-server apt-get install torque-mom apt-get install torque-clientサーバノードの指定は vi /etc/torque/server_name (/var/spool/torque/server_priv/server_name)
ホスト名計算ノードの指定は vi /var/spool/torque/server_priv/nodes
ホスト名 np=2np=2 はこの計算ノードの最大同時実行数。
もし pbs_server が起動していなければ手動で pbs_server -t create を実行後に qmgr コマンドを実行し、以下を設定する
c q キュー名 queue_type=e s s default_queue=キュー名 s s scheduling = t s s acl_hosts = ホスト名 s q キュー名 started=t s q キュー名 enabled=t s q キュー名 max_running=1pbs_server, pbs_sched, pbs_mom が動いていたら一旦全部 kill して、手動で起動してみる。
/etc/init.d/torque_server start /etc/init.d/torque_sched start /etc/init.d/torque_mom start
pbs_server, pbs_sched, pbs_mom が起動したのでジョブ投入してみる。
$ echo sleep 60 | qsub 1.ホスト名 qstat Job id Name User Time Use S Queue ------------------------- ---------------- --------------- -------- - ----- 1.ホスト名 STDIN JC 0 R キュー名 $ echo sleep 60 | qsub 2.ホスト名 $ qstat Job id Name User Time Use S Queue ------------------------- ---------------- --------------- -------- - ----- 1.ホスト名 STDIN JC 0 R キュー名 2.ホスト名 STDIN JC 0 Q キュー名
このキューの max_running は 1 なので 2 本投入したうち 1 本だけが R (Run) で後から投入したジョブは実行待ちで Q (Queued) になっている。一人で使う分にはこれで申し分ない。
<2011/12/19 追記>
Syslog に pbs_server のエラーが大量に出ていた:
Dec 19 04:51:02 huge_host pbs_server: LOG_ERROR::is_request, bad attempt to connect from 10.0.2.15:1023 (address not trusted - check entry in server_priv/nodes)
/var/spool/torque/server_priv/nodes というファイルを新規に作って以下一行記述
hoge_host np=2 headnode
Daemon 再起動した。
CentOS6.5でですが、インストールしてみました。
返信削除同じように、順番にジョブを投入することが目的です。
管理ノードも計算ノードも同じサーバです。
たしかにインストールは簡単でしたが、
キューに投入されたものがQから変わりません。
すごく初歩的な質問なのですが、問題解決は
なにを参考にされましたか?
一つの例にすぎませんが、Queue の属性で enabed と started という項目があり、これらが true になっていないと Queued のままになります。
削除現状を qmgr -c ' p s' で確認できます。手元の環境ですと、simple というキューがあり、以下のような出力になりました:
--------------------------------------------------------------------------------
#
# Create queues and set their attributes.
#
#
# Create and define queue simple
#
create queue simple
set queue simple queue_type = Execution
set queue simple max_running = 1
set queue simple enabled = True
set queue simple started = True
#
# Set server attributes.
#
set server scheduling = True
set server acl_hosts = catchy
set server default_queue = simple
set server log_events = 511
set server mail_from = adm
set server scheduler_iteration = 600
set server node_check_rate = 150
set server tcp_timeout = 6
set server next_job_number = 8
--------------------------------------------------------------------------------
設定の仕方は例えば http://www.cr.ie.u-ryukyu.ac.jp/~game/pukiwiki/index.php?Torque などが参考になると思います。
またログファイルを見ると何が起きているか判ることもあります。以下の3つのディレクトリに日付ごとのログファイルが生成されています:
- /var/spool/torque/server_log/
- /vara/spool/torque/sched_log/
- /var/spool/torque/mom_log/
pbs_server が qsub のリクエストを受け取り、pbs_sched が pbs_mom と連携してスケジューリングをして、最終的にpbs_mom で実行という流れだったと思います。
ありがとうございます。うごきました。
削除原因は不明です。この間にやったことといえば、ファイアーウォールを一時的に
止めたことくらいです。
今後、うまくいかないときは、ログを参照します。
ともあれ動いてよかったです.
削除/var/spool/torque/mom_logs
返信削除に5分置きにLEVEL=0 のログが表示されています。
/var/spool/torque/mom_priv/config
の設定を変えて、pbs_momをrestartしてみたのですが
5分置きの出力は変えられませんでした。
Jugemさんの環境でも、ログは5分間隔でしょうか。
prologalarmは既定値で300秒になっていますが、
3600に変えてみたのですが、ここも違うようです。
loglevelは0-7とあったので7にすると1分置きに
より多くのログが出力されたので0に設定
logevenはビットマスクとあったので255と0
で試して、マニュアルにあった(fが一つ多い?)0x1fff
も試しました。