Torque導入
海外遠征中にがっつり計算をまわせるようにジョブスケジューラを急ぎ足で導入。
環境はいつものubuntu 14.04 LTSで。
とりあえずたくさん投げておいたジョブを順繰りに消化してくれれば良いので, ジョブ管理サーバがそのまま8ノードのクラスタとして動くような構成。
参考URL
他もググった気がする
ステップ1
apt-get
で拾ってくる。
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install torque-server # これがサーバ用パッケージ
$ sudo apt-get install torque-client # これと
$ sudo apt-get install torque-mom # これがノード用らしいけどclientはserverについてきたような...
拾ってくると自動で動き出すので,設定の都合上,
$ sudo service torque-server stop
$ sudo service torque-scheduler stop
$ sudo service torque-mom stop
で止めておいた。止めなくてもよいのかも。
2017-03-23 追記 サービスを止めずにステップ2でサーバ名を変更してステップ3へ進むと,
qmgr
のコマンド実行時に詰む模様。 おそらくtorque-mom
が起動する時に/etc/torque/server_name
のデフォルトを読んでいるので,こちらが設定した新しいサーバ名と食い違うのが原因か。ともかく,上記サービスは停止させておくに越したことはない。
ステップ2
サーバ/ノード設定を行う。
/etc/torque
なるディレクトリができていて,その中に
nodes
とserver_name
というファイルがあるのでそれを確認する。
できてなかったら多分つくればよい。
$ cat nodes
サーバ名 np=xx # 自分のマシンのホスト名とノード数xxがあっていなければ直す
$ cat server_name
torqueserver # torqueserverの部分をnodesのサーバ名と同じにする
編集にはsudoが必要だったかもしれない。
ステップ3
キュー(ジョブを投げる窓口)の設定を行う。
2017-03-23 追記 このタイミングで
torque-server
を起動しておかないと、qmgr
が文句を言う。
使うのはqmgr
というコマンド。
基本sudoを付けて使っていく。
例としてtest01
なるキューを作る。
$ sudo qmgr
Max open servers: xxx
Qmgr: create queue test01
Qmgr: exit
$
これでキューが作られる。
qmgr
実行中はプロンプトがQmgrになるので注意。
しかしこれだけだとほとんど意味がないので,
Qmgr: set 適用先 設定変数 = 値
みたいな感じでコンフィグを行う。
適用先はserver
が全体設定,queue test01
でtest01キューにのみ設定,といった具合に書く。
詳しくはman
とか参考URLで確認してつかぁさい。
設定した項目の一覧は
$ qmgr -c "p s"
とすると一覧で出てくるので,リダイレクトすればテキストファイル等に保存しておける。
2015-07-06 修正 何故か
-c
が-s
になっていたので訂正。
qmgr
実行中にp s
と打っても同じだが,リダイレクトはできないのであまり意味がないような。
逆に,リダイレクトしたテキストファイルを使って
$ qmgr < torqueconfig03
のように一括設定をすることも可能。
ステップ4
動作確認。
ステップ1の終わりで止めていたので,
$ sudo service torque-server start
$ sudo service torque-scheduler start
$ sudo service torque-mom start
で復活させる。
2017-03-23 追記 ステップ3で既に
torque-server
を起動した場合は最初の1行を無視。
qstat -q
あたりでキューの状態を確認したら,
$ echo 'sleep 30' | qsub
等でお試しジョブを投げて確認。
うまく投げられなかった場合,サーバ名やキュー名が正しいかチェックしていくときっと問題点が見つかる。はず。
ステップ5
ブン回す。
とりあえずジョブ35個投げられたので,これで心置きなく海外遠征できそうです。めでたし。