並列プログラミングのための、 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
// makefile は makefile.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通りの計算サイズを固定し、測定しています。
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
- -
ベンチマーク実行後
# 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
- -
これを見るとちゃんと並列で実行されてたことがわかります。
結果考察
姫野ベンチの自分の環境での結果は、
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) | 東京工業大学、フロリダ大,フロリダ,アメリカ |
順位 | 名称 | プロセッサ | コア数 | 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演算性能」が用いられています。
以上。