2004/10/22

install SGE (Sun Grid Engine)

http://gridengine.sunsource.net/ からダウンロード。

 * 1.6M 2006-01-25 22:25 sge-6.0u7-common.tar.gz
 * 14M 2006-01-25 22:30 sge-6.0u7_1-bin-lx24-x86.tar.gz

インストールにあたっては,SGE 6.0専用のドキュメントというのは無いそうなので,
N1 Sun Grid Engine 6のドキュメントを参照します.
http://jp.sun.com/documentation/からたどれる
http://docs-pdf.sun.com/817-7678/817-7678.pdf がわかりやすいでしょう.

 mkdir /usr/local/SGE-6.0u7 (sge_root)
 cd /usr/local/SGE-6.0u7
 tar zxvf sge-6.0u7-common.tar.gz         
 tar zxvf sge-6.0u7_1-bin-lx24-x86.tar.gz

 export SGE_ROOT=/usr/local/SGE-6.0u7

ま,やらなくてもいいですが,ファイルのオーナーの確認をしてくれます
 ./util/setfileperm.sh $SGE_ROOT

マスターノード
まず,マスターノードをインストールします
 $ ./install_qmaster

/etc/services に追加しろといわれるので
 # Local services
 sge_qmaster     536/tcp         # SGE Queue manager
 sge_execd       537/tcp         # SGE

以前は,起動スクリプトで失敗したけど,/etc/init.d/ にちゃんといれるどころか,
update-rc.d まで実行してくれました.

環境変数が以下にセットされるので,使うときは source で読みます.
 $SGE_ROOT/default/common/settings.sh
 $SGE_ROOT/default/common/settings.csh

ホストリストの確認
 # qconf -sh

ホストの追加
 # qconf -ah <hostname>

計算ノードのインストールに入る前に実行ホストを qconf -ah で追加しておく必要があります.

計算ノード
 ./install_execd
適当に質問に答えればよい。

うーーーん.なぜか,SGE_QMASTER_PORTが指定されていないと,install_execdの中で
呼んでいる qconf -sh に失敗してしまいます.とりあえず,直接536を指定して,
settings.shの中の unset をコメントアウトしたら進みました.

ちがった./etc/services に書いておけば大丈夫なようです.

ログインノードの設定
 gateway node ---- compute node 1
                   compute node 2
                   ...
                   compute node N
のような感じで,gateway nodeをSGEマスターノードにする場合があると思います.その場合,
gateway node をマネージャーノードとしてSGEのインストールをして,compute nodeに,計算ノードの
インストールをすると思います.

しかし,この構成の場合,gateway nodeからqsubすることが出来ません.
 $qsub test.sh
 Unable to run job: denied: host "gateway node" is no submit host.
 Exiting.

これを回避するために,
 qconf -as gateway node
として,submit hostとして,gateway node を登録する必要があります.

逆に計算ノードからqsubさせないように
 qconf -ds compute node #
とすることも出来ます.

動作確認
これで、設定は終了です。

マスターノードで qhost として、リストされれば動いています。

 #!/bin/sh
 /bin/hostname

を test.sh という名前で用意して、
 qsub test.sh
すると、test.sh.o1 というファイルができます。ここに、リモートのホスト名が
表示されれば、動作確認終了です。