« ATMカード | トップページ | Happy Diwali »

2006.10.20

Oscar のインストール2

多数のPCを用いて計算を行う際、インストールの作業やその後のプログラム実行の割り振りなどを手助けしてくれる Oscar という管理システムを導入しようとした。しかし、インストールは一筋縄では進まなかった。で、その続き。

Ganglia というモニタシステムで不具合があるようだった。
"不具合" をたどると、 Ganglia の 動作テスト用スクリプト "test_user" に行き着いた。
この中で、設定ファイルから取得したノードPC数と、Ganglia が取得したノードPC数とを比較している。

その一部分


pattern=`hostname`"|"`perl -e "print join(\"|\",split(\" +\",\"$@\"));"`
hosts=`gstat --all | egrep -c "^($pattern)$"`

どうも、この記述がおかしい。
詳しい説明は省略するが、以下のように変更して、Ganglia が把握しているノードPC数を数えさせるようにした。

pattern=`dnsdomainname` hosts=`gstat --all | egrep -c "($pattern)$"`

どうやら、これで"不具合"は解決した。
本当は、システムに不具合があったわけではなく、チェックプログラムの不具合だったのだろう。たぶん。

いよいよ、ジョブの投入。"qsub" というコマンドを用いる。使い方は、"batch" コマンドに似ているが、qsub は複数のPCを扱うだけあって、いろいろなパラメタが指定できる。

ところが、複数のジョブを投入すると、なぜか1つずつしか動かない。8台(+1台)もPCがあるというのに。

"qstat" や "pbsnodes -a" などで状態を確認しながら進めたところ、「1つのジョブを8台のPCで並列計算させようとしているのでは」という疑いが出てきた。何も確証はないのだが、そう考えると振る舞いと辻褄が合いそうだった。8CPUを占有していながら、実行させているプログラムが並列計算用でないので、1つのCPUでしか走らないのだ。

qsub のマニュアルを読んでみると、"qsub -l nodes=X" として実行すると、X台のPCを確保するらしい。ただ、マニュアルでは、「何も指定しない場合は、X を 1 だとみなす」と書かれている。普通そうだろう。
しかし、ここはとりあえず、"qsub -l nodes=1" と明記して実行してみた。

解決。

とりあえず、これでどんどんと計算を走らせることが出来そう。
近いうちに、2CORE x 2CPU x 8PC のPCクラスターも導入予定なので、そのときにも Oscar は活躍するだろう。


ただ、この Oscar というシステム、シロウトには扱いが難しい気がする。
(素人は使わないから良いのか)

|

« ATMカード | トップページ | Happy Diwali »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/1418/12346774

この記事へのトラックバック一覧です: Oscar のインストール2:

« ATMカード | トップページ | Happy Diwali »