今夜もLab.に独り

蛙飛び込むVimの音

Torque導入

海外遠征中にがっつり計算をまわせるようにジョブスケジューラを急ぎ足で導入。

環境はいつものubuntu 14.04 LTSで。

とりあえずたくさん投げておいたジョブを順繰りに消化してくれれば良いので, ジョブ管理サーバがそのまま8ノードのクラスタとして動くような構成。

参考URL

TORQUEの導入・設定:tech.ckme.co.jp

他もググった気がする

ステップ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なるディレクトリができていて,その中に nodesserver_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個投げられたので,これで心置きなく海外遠征できそうです。めでたし。