heyheytower

日々のメモです。誰かのお役に立てれば幸いです。

並列プログラミングのための、 linux クラスタ環境の構築。その3(パフォーマンス確認、姫野ベンチ)

目的

自宅のグリッドコンピューティング環境のベンチマークを測定する。

環境

筐体:NEC Express5800/S70 タイプRB ×4
CPU:インテル Pentium G6950 (2.8GHz)*1
並列:openmpi-1.6
言語:gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
管理:Sun Grid Engine 6.2 Update 2
主OS:Linux ito-ubuntu 2.6.32-43-generic #97-Ubuntu SMP Wed Sep 5 16:42:26 UTC 2012 x86_64 GNU/Linux
従OS:Linux calc1 2.6.32-38-server #83-Ubuntu SMP Wed Jan 4 11:26:59 UTC 2012 x86_64 GNU/Linux

詳細は並列プログラミングのための、 linux クラスタ環境の構築。その2(SGEの導入) - heyheytowerをご覧ください。

方法

測定方法が簡単で、測定時間が短いと言われている下記のベンチマークを利用した。
http://accc.riken.jp/2145.htm

姫野ベンチの使用方法・測定結果一覧 (Linux編)を参考に測定した。

# pwd
/home/beowulf/121201_himeno
# ls
bmt cc_himenobmtxp_mpi.lzh himenobmtxps.c himenobmtxps.o makefile makefile.sample param.h paramset.sh
// makefilemakefile.sample をコピーし、ファイル名とコンパイラを変更

# make uninstall
// テストを繰り返す前に、以前の実行ファイルを削除

# sh ./paramset.sh M 1 8 1
# make
# cat .mpi
ito-ubuntu slots=2
calc1 slots=2
calc2 slots=2
calc3 slots=2

# mpirun -np 8 -machinefile .mpi ./bmt
//2コア*4台のため

測定結果

姫野ベンチマークでは次の4通りの計算サイズを固定し、測定しています。

f:id:maijou2501:20150516003849p:plain

master-node 1台で実行
Grid size I-dim J-dim K-dim MFLOPS
S 1 1 2 1742
M 1 1 2 1583
L 1 1 2 1602

※3回実行した結果の平均

4台並列環境で実行
Grid size I-dim J-dim K-dim MFLOPS
S 2 2 2 4416
M 2 2 2 5524
L 2 2 2 5310
M 1 1 8 5145
M 1 8 1 4724
M 8 1 1 4616
M 4 2 1 5108
M 1 4 2 4844
M 2 1 4 5997

※とりあえずいろんな変数で実行してみました。
 
 

各 node の状態

ベンチマーク実行前

# qstat -f
queuename qtype resv/used/tot. load_avg arch states

                                                                                                                                                                • -

main.q@calc1 BIP 0/0/2 0.00 lx26-amd64

                                                                                                                                                                • -

main.q@calc2 BIP 0/0/2 0.01 lx26-amd64

                                                                                                                                                                • -

main.q@calc3 BIP 0/0/2 0.00 lx26-amd64

                                                                                                                                                                • -

main.q@ito-ubuntu BIP 0/0/2 1.10 lx26-amd64


ベンチマーク実行後

# qstat -f
queuename qtype resv/used/tot. load_avg arch states

                                                                                                                                                                • -

main.q@calc1 BIP 0/0/2 0.51 lx26-amd64

                                                                                                                                                                • -

main.q@calc2 BIP 0/0/2 0.54 lx26-amd64

                                                                                                                                                                • -

main.q@calc3 BIP 0/0/2 0.55 lx26-amd64

                                                                                                                                                                • -

main.q@ito-ubuntu BIP 0/0/2 2.07 lx26-amd64

これを見るとちゃんと並列で実行されてたことがわかります。

結果考察

姫野ベンチの自分の環境での結果は、
 1台単体では 1.6 GFLOPS
 4台並列では 5.1 GFLOPS

であることがわかった。

http://accc.riken.jp/2428.htmと比較しても、妥当な数値と考えてます。

Intel が公表しているプロセッサ「G6950」のスペックは以下。*2

プロセッサー・ナンバー L2 キャッシュ バススピード 動作周波数 CTP 値 (MTOPS) GFLOPS
G6950 3MB 2.5 GT/s 2.80 GHz 43867 22.4

 
また、歴代スパコンの FLOPS を抜き出す。
http://ja.wikipedia.org/wiki/スーパーコンピュータ技術史

日付け ベンダ&名称 実効性能 プロセッサ 設置場所
1985年 Cray-2/8 3.9 GFLOPS 独自開発 ローレンスリバモア国立研究所,カリフォルニア,アメリカ
1989年 ETA10-G/8 10.3 GFLOPS 独自開発(FET) 東京工業大学、フロリダ大,フロリダ,アメリカ

 
2012年11月12日のスパコンランキングは以下。*3

順位 名称 プロセッサ コア数 FLOPS
1 Titan 米Cray「XK7」 560,640 17.59ペタFLOPS
2 Sequoia IBM「BlueGene/Q」 1,572,864 16.32ペタFLOPS
3 富士通「SPARC64 IXfx」 705,024 10.51ペタFLOPS

 
歴代スパコンと比較すると自分の環境は1986年位のトップと同等くらいかなと推定します。
※歴代スパコンの演算性能算出方法が分からないので単純に比較はできませんし、
 またベクトル型という点も違いますが。

また、現在のランキング1位がいかにすごいかが分かりました。
スパコンランキングは「LINPACK演算性能」が用いられています。


以上。