
ベンチマークに使っている計算がメモリ速度に強く依存するものなので,これはメモリのせいに違いないと思って調べてみた.そうしたら,
…メモリのクロック数が遅く設定されている!?
刺さっているメモリはPC3-10600(DDR3-1333)なのだが,メモリクロック数が500MHzになっている.667MHzぐらい出るはずなのに.
メモリのクロック数は,BIOSで"Auto"に設定されていたので,これをDDR3-1333に設定してみた.
改めてベンチマーク計算したのが左上のグラフの赤い棒.
1ノード(4並列)では速くなっている.2ノード(8並列)でも速くなっている.
調子に乗って4ノード(16並列)を走らせたら,…あれ,遅くなった!?
実は,メモリの設定を変える前にいちどフロントエンドの再インストールをした.ネットの情報で「Rollはあとから入れるのが大変なので,最初に全部入れておくほうがよい」とあったので,Rollを目一杯インストールするため.
最初のインストールのときにはなかった仮想ネットワークインターフェイスが作られ,OpenMPIを設定し直さないと並列計算できなかった.
何度か再インストールをやり直したが,どうもxenかcondorの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 件のコメント:
コメントを投稿