各種計算機アプリケーション性能比較
平成２５年度第1四半期
目次
1.はじめに2.QCD計算
3. 量子モンテカルロ法による物性スペクトル計算
3.1 自動並列とPPGENの使用
3.2 8倍精度,16倍精度,32倍精度演算
3.3 6倍精度,8倍精度,10倍精度行列積計算

各種計算機アーキテクチャの相違は性能のみならず,精度,コンパイラの最適化機能,互換性にも影響が出てきます。主に使用した計算機は以下の4つです。
(ア)SR16000/M1
プロセッサ:power7
周波数:3.83GHz
１ノード当たり
CPUコア数 32(物理的),64(論理的)理論最大性能 980.48 GFLOPs
メモリ容量 256GB
メモリアーキテクチャー NUMA,(16論理コア単位でflat)
SIMD(Single Instruction Multiple Data)をサポートするVSX機構付き
L3キャッシュ On-Chip 32MB/8コア
演算器/物理コア 乗加算器４つ(イ)BG/Q
周波数 1.6GHz
1 ノード 16core 論理性能 204.8GFLOPs
L1 キャシュ16/16KB (Core)
L2 32MB (node)
Main storage 16GB (Core)
Smt=1,2,4

(ウ)HD5870
GPU カード型番:ATI RadeonHD5870
メモリ: GDDR5, 1 GB, 153.6 GB/s
ホストインタフェース: PCI Express 2.1 x16stream
processing unit: 3200個(演算プロセッサ)
動作周波数: 850 MHz ピーク性能(倍精度): 1088 Gflops(エ)HD6970
GPU カード型番:ATI RadeonHD6970
メモリ: GDDR5, 2 GB, 176 GB/s
processing unit: 6144個(演算プロセッサ)
動作周波数: 880 MHzピーク性能(倍精度):2703 Gflops

これらのほかに
x5570 8コア 2.93GHz キャシュ 8MB/コア
e5430 16コア 2.66GHz キャシュ 12MB/コアなどとも比較しています.

1.はじめに
今回は主に２つのアプリケーションからなっています。

一つは倍精度演算からなるQCD計算でコンパイラーオプションのみによる最適化での複数ノードでの実行です。
もう一つは４倍精度でも精度が良くない量子モンテカルロ法による物性スペクトル計算でプログラムは高エネルギー加速器研究機構,物構研岩野氏より提供いただいたのをベースにしています。
またこの２つのプログラムの実行やその結果から派生したＰＰＧＥＮの使用の効果,多倍長計算や行列積計算の性能比較を行っています。

2 QCD計算
QCD 32*32*32*64 並列実行性能測定結果
実行時間一覧表(秒)1 ノードsmp BG/Q ソースはParallel Program Generetor で作成
SR16000
339.15 BG/Q
SR16000/BG実行性能比 6.55
SR16000/BG カタログ性能比 4.79

2221.9mpi,ｓｍｐ並列
SR16000
node
total
148

BG/Q
node
217.4
46.37
18.8

total
3256.34

SR16000 (対BG/Q)
node
実行性能比
カタログ性能比10.2590.15
4
1.215
0.598
83.0291.197

ソースチューニングがない場合,SR16000/M1がBG/Qに対してカタログ性能比以上に実行性能比がでています。

3.量子モンテカルロ法による物性スペクトル計算
この計算は求めるケースの精度がアーキテクチャーに大きく依存するために同じ条件のケースを比較するのが困難という問題があります。

例えばβ=20,u=10のケースを計算する場合8倍精度で計算すると,有効ビット数の差により, X5570,e5430では正しい結果がでますがSR16000/M1,BG/Qシステムでは正しい結果が出ません。また数値表現の範囲の制限でSR16000/M1,BG/Qシステムでは10倍精度演算を使用する場合, β=25,u=10を計算するには平方根計算のアルゴリズムの変更が必要になり, β=28,u=10を計算使用とするとオーバーフローが発生し実行不可になります。
今回は、この問題から派生したテスト問題等で性能比較を行いました。

3.1

自動並列とＰＰＧＥＮの使用

量子モンテカルロ実行時間(秒)l=448,beta=10,u=2４倍精度

並列手法 自動並列
smp数 x5570 e5430
141722884188
8153

ppgen+openmp
x5570 e5430
574
422
583
370
244307259
120
1622016386(1)PPGEN使用の効果がでています。
(2)Smp数が増えるにつけ自動並列とppgenの並列化効果の差が大きくなります。

3.2

8,16,３２倍精度演算

現状、または今後のテストケースでは数値表現可能な範囲の制限により,SR16000/M1及びBG/Qでは実行不可なので、x5570,e5430
シングル実行での結果を比較しました。

量子モンテカルロ実行時間(秒)l=448,beta=20,u=10精度
x5570
e5430
8倍精度
1457
16倍精度
5029
32倍精度
15073

2031
6852
20790

(1)x5570とe5430のカタログ性能比はほぼ1.1倍(2)実行性能ではx5570がカタログ性能比以上をだしています。
(3) 多倍長計算ではINTEL系のほうがAMD系の計算機よりも適している。

3.3 6倍精度,8倍精度,10倍精度行列積計算
ソースはSR16000/M1,BG/Qでのソースを使用。
並列化はＰＰＧＥＮで作成したものを使用。
行列積テスト結果一覧表
N=100,1000回実行時間(秒)SR16000/M1 1ノード
精度
single32core64smp
6倍精度
46.315
1.877
1.304
8倍精度
80.729
3.285
2.14
10倍精度
188.761
7.58
5.275
e5430
精度
1way
2way
4way
8way
6倍精度
47.87323.94811.9866.223
8倍精度
92.68846.38523.21
12.06610倍精度
249.493128.27864.30133.418
x5570
精度
1way
2way
4way
8way
6倍精度
34.68619.485
9.271
4.727
8倍精度
77.50740.361
19.2699.707
10倍精度
186.566
99.00649.75525.078

N=100としたのはもとの計算で使用されているものに合わせました。

(1)周波数は SR16000 3.83GHz
x5570
2.93GHz
e5430
2.666GHz
これから、1way,singleの実効性能で比較すると性能が良い順としては,x5570,e5430,SR16000/M1 の順になります。

(2)並列化効果は３つの計算機ともよくでています。

このあと,実行回数１００回でNを100から500まで50ずつ変化させた場合の結果を示しますが、同様の結果となっています。

多倍長行列積 実行時間(秒)一覧表
実行回数100回
N(SR16000/M1)

6倍精度
8倍精度
single 32core 64smp single 32core 64smp
100 5.412 0.219 0.145 9.197
0.38 0.267
150 18.312 0.614 0.487 30.873 1.083 0.812
200 43.161 1.517 1.151 73.686
2.67 1.923
250 84.567 2.713 1.806 144.121 4.755 3.003
300 145.842 4.864 3.249 249.105
8.54 5.412
350 231.647 7.288 5.318 397.316 12.852 8.824
400 346.528 11.227 8.021 590.632 19.402 13.513
450 493.948 16.557 11.79 843.283 28.813 19.453
500 685.857 24.133 15.186 1161.125 37.976 24.238

SMT ON の効果が大きい。

多倍長行列積 実行時間(秒)一覧表
実行回数100回N

x5570

6倍精度
8倍精度
1smp 2smp 4smp 8smp 1smp 2smp 4smp 8smp
100 4.133 2.327 1.113 0.571
8 4.483
2.14 1.102
150 14.413 8.088 3.789 1.884 27.14 15.218
7.32 3.547
200 34.326 19.26 9.151 4.428 63.953 35.865 17.013 8.256
250
65.6 36.79 17.335 8.656 124.917 70.06 33.521 16.495
300 111.919 62.788 29.835 14.64 216.375 121.321 57.334 28.283
350 177.923 99.78 47.128 23.013 344.008 192.91 91.481 44.654
400 265.827 149.066 70.833 34.309 548.527 308.89 146.779 70.767
450 381.068 213.747 101.091 49.846 738.552 414.047 197.582 96.468
500 531.941 287.079 141.572 69.197 1022.405 573.234 272.297 132.659

並列化効果はほぼ理想曲線にそっています。

多倍長行列積 実行時間(秒)一覧表
実行回数100回
N

e5430

6倍精度
8倍精度
1smp 2smp 4smp 8smp 1smp 2smp 4smp 8smp
100 5.542 2.775 1.397 0.729 10.174 5.096 2.556 1.323
150 18.779 9.398 4.761 2.381 34.385 17.213 8.718 4.325
200 44.765 22.39 11.204 5.604 83.523 41.711 20.88 10.388
250 88.103 44.091 22.203 11.222 160.157 80.156 40.386 20.366
300 160.193 80.211 40.208 20.228 283.05 141.53 71.343 35.73
350 262.688 131.605 66.12 32.852 456.253 229.215 115.799 57.786
400 392.931 196.858 98.412 48.771 705.816 354.412 175.949 88.056
450 565.854 283.451 142.386 71.477 1111.951 561.997 282.593 142.997
500 781.873 390.305 195.826 98.263 1606.29 800.902 407.105 205.449

並列化効果はほぼ理想曲線にそっています。