2012年2月20日月曜日

Rocks Cluster Distribution,メモリとメモリとcondorではまる

先日来構築しているRocks Cluster DistributionによるPCクラスタで,「1ノードでもいちばん左の棒(stewart,Core i7 920)より速いことを期待していたのだが.」と思っていた.CPU性能だけを比較すると,少なくともグラフの左端の棒と同じ程度の能力を出してくれるはずなので.

ベンチマークに使っている計算がメモリ速度に強く依存するものなので,これはメモリのせいに違いないと思って調べてみた.そうしたら,

…メモリのクロック数が遅く設定されている!?

刺さっているメモリはPC3-10600(DDR3-1333)なのだが,メモリクロック数が500MHzになっている.667MHzぐらい出るはずなのに.
メモリのクロック数は,BIOSで"Auto"に設定されていたので,これをDDR3-1333に設定してみた.

改めてベンチマーク計算したのが左上のグラフの赤い棒.
1ノード(4並列)では速くなっている.2ノード(8並列)でも速くなっている.
調子に乗って4ノード(16並列)を走らせたら,…あれ,遅くなった!?

実は,メモリの設定を変える前にいちどフロントエンドの再インストールをした.ネットの情報で「Rollはあとから入れるのが大変なので,最初に全部入れておくほうがよい」とあったので,Rollを目一杯インストールするため.
最初のインストールのときにはなかった仮想ネットワークインターフェイスが作られ,OpenMPIを設定し直さないと並列計算できなかった.

何度か再インストールをやり直したが,どうもxencondorのRollをインストールすると,仮想ネットワークインターフェイスが作られるらしい.
最初はxenだけ抜いて試したが,それでは計算時間は変わらず.
condorを抜いてインストールしたところ,やっと計算速度が向上した.その結果が左上のグラフの黄色い棒.

とりあえずすべてのRollを入れておくのは,HPC目的の場合には,あまりよい作戦ではないようだ.xenやcondor Rollは特によく吟味したほうがよいだろう.

ここまで来るのにだいぶん試行錯誤した.まずは理解できる結果になってよかった.

速くなったのはうれしいが,残念なのは,HA8000の32並列にわずかに及ばなかったこと.もうちょっとだったのに,惜しいな.

それに,1ノードでいちばん左の棒(stewart, Core i7 920)とまだ大きな差がある. stewartのメモリは何が刺さっているんだっけ? 今度調べておかないと.

このほかに,フロントエンドのメモリを増やそうとしてはまった.4GBのメモリを4枚買って挿したのだが,動かない.しかし2枚挿すと,どの2枚をどのチャネルに挿しても,動く.memtest86+で長時間メモリテストしてもばっちり.なぜだ!?

きっと相性というものがあるのだろうと自分に言い聞かせて,いまは2枚(8GB)だけ挿して運用している.

いろいろいじったのでRocksクラスタには多少詳しくなった.計算時間もいくらか早くなったし,手間はかかったがまぁよしとしよう.

0 件のコメント:

コメントを投稿