各種計算機アプリケーション性能比較
平成２４年度第１四半期
目次
1. 多倍長演算アプリケーション
1.1 ループ積分
1.2 ６倍、８倍精度演算
2. 倍精度演算アプリケーション
2.1 ループ積分
2.2 重力多体問題（N体問題）
3. 単精度演算アプリケーション
3.1 姫野ベンチ

各種計算機アーキテクチャの相違は性能のみならず,精度,コンパイラの最適化機能,互換性にも影響が出てきます。主に使用した計算機は以下の３つです。
(ア)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

(ウ)GPGPU
GPU カード型番:ATI RadeonHD5880
メモリ: GDDR5, 1 GB, 153.6 GB/s
ホストインタフェース: PCI Express 2.1 x16stream
processing unit: 3200個(演算プロセッサ)
動作周波数: 850 MHzピーク性能(単精度): 5440 Gflops(=3200x2x850MHz)ピーク性能(倍精度): 1088 Gflops

1. 多倍長演算アプリケーション
１．１ ループ積分
測定した数値積分の積分式,解析近似解は以下の様なものです。
1 1 x 1 x  y

1I     2 dzdydx
0 0 0 D式

D  sxy  tz (1  x  y  z )  ( x  y)2  (1  x  y  z )(1  x  y)me z (1  x  y)m f

2s  500 , t  150 , m f  150,22me  0.0005,   1030

解析近似解(t  m f ) 22I1sln() ln2222
 s(t  m f ) me m f

相対誤差7 1026 以下

データ

2

１ ノード性能比較

サイズN=１０２４

実行時間（秒）
3530

BG/Q(換算) 64smp≒SR16000/M1 64smp

2520

BG/Q
BG/Q(換算）

15SR16000/M1

10
50
12

34

SMT数

BG/Q
SR16000/M1SMT=1 16 smp
32 smp=2 32 smp
64 smp=3 48 smp
96 smp=4 64 smp
128 smpBG/Q(換算) 204.8GFLOPs => 980.48GFLOPs にしたときの値

サイズN=2048
実行時間（秒）300
250

BG/Q(換算) 64smp≒SR16000/M1 64smp
200
BG/Q

150

BG/Q(換算）
SR16000/M1100
5001234

SMT数

BG/Q
SR16000/M1
SMT=1 16 smp
32 smp=2 32 smp
64 smp=3 48 smp
96 smp=4 64 smp
128 smpBG/Q(換算) 204.8GFLOPs => 980.48GFLOPs にしたときの値

サイズN=4096
実行時間（秒）
2500
2000
BG/Q(換算) 64smp≒SR16000/M1 64smp
1500

BG/Q
BG/Q(換算）

1000

SR16000/M1500
01234SMT数

BG/Q
SR16000/M1
SMT=1 16 smp
32 smp=2 32 smp
64 smp=3 48 smp
96 smp=4 64 smp
128 smpBG/Q(換算) 204.8GFLOPs => 980.48GFLOPs にしたときの値

４倍精度INFRA BOX N=1024 各種計算機実行時間（１）実行時間（秒）8

論理最大性能BG/Q 6553.6 GFLOPs
SR11000 537.6GFLOPs
GPGPU 1088GFLOPs
XM1 844.8GFLOPs
T2K 64MPI 588GFLOPs
T2K 128MPI 1176GFLOPs
T2K 256MPI 2352GFLOPs
BG/L 5734.4GFLOPs

765432

実行時間（秒）1
BG/L 1024node 1024MPIT2K 256MPIT2K 128MPIT2K 64MPI

XM1 4MPI*16SMP

XM1 64SMP

GPGPU

SR11000 64PE

BG/Q 32node 1024MPI0

４倍精度INFRA BOX N=1024 各種計算機実行時間（２）実行時間（秒）
1.2
10.8

論理最大性能BG/Q 6553.6 GFLOPs
SR16000/M14node 3921.92GFLOPs
8node 7843.84GFLOPs

0.6
0.4

0.20

実行時間（秒）98765432
10

SR16000/M1 8node 512MPI

SR16000/M1 8node 256MPI

SR16000/M1 4node 256MPI

SR16000/M1 4node 128MPI

GPGPU

BG/L 1024node 2048MPI

BG/Q 32node 2048MPI

BG/Q 32node 1024MPI

BG/Q 32node 512MPI

４倍精度INFRA BOX N=2048 各種計算機実行時間

実行時間（秒）

論理最大性能BG/Q 6553.6 GFLOPs
SR16000/M1
4node 3921.92GFLOPs
8node 7843.84GFLOPs
GPGPU 1088GFLOPs
BG/L 5734.4 GFLOPs

実行時間（秒）４倍精度INFRA BOX N=4096 各種計算機実行時間

実行時間（秒）9080
706050

論理最大性能BG/Q 6553.6 GFLOPs
SR16000/M1
4node 3921.92GFLOPs
8node 7843.84GFLOPs
GPGPU 1088GFLOPs

403020100

実行時間（秒）４倍精度INFRA BOX N=2048とN=4096
各種計算機実行時間比率

演算量比率(N=4096/N=2048)=8実行時間（N=4096/N=2048)比率
121086420

倍率

1.2 ６倍、８倍精度演算
ここでは、泊＆平木（２０１１） SWOPP’11 で８０MHｚのFPGAで作成した８倍精度演算器の性能
５３７MFLOPｓ（OMFLOPｓ）と比較を行っています。

GPGPU 3200Core
N=1,000,000 の内積演算 ３２００回実行 演算量 ６４００MFLOP

精度
実行時間（秒） 性能(MFLOPs)
６倍精度
1.65
3879
8倍精度
1.88
3401
SR16000/M1 １ノード
N=2**24 の内積演算 １００回実行 演算量 3355.44MFLOP

f90 実行結果
精度
MPI数
実行時間（秒） 性能（MFLOPs)
６倍精度
162.415
1389
32
1.745
1923
640.8783822
８倍精度
165.869
572
32
3.277
1024
641.854
1810

SR16000/M1 １ノード
サイズN=2048 の行列積

演算量 17179.8 MFLOP

コンパイラ
f90xlf_r
精度
スレッド数 実行時間（秒） 性能(MFLOPs) 実行時間（秒） 性能(MFLOPs)
6倍精度
1172.13100
122.83
1408
32.13
535
13.96
1231
16
16.08
1068
6.98
2461
328.04
2137
6.128
2780
64
4.02
4274
4.41
3896
128
6.31
2723
3.94
4360
8倍精度
1414.5141
261.9466872.79
236
30.97
555
16
36.43
472
25.65
670
32
18.22
943
13.02
1320
64
9.11
1886
8.57
2005
12812.89
1333
8.91
1928
赤字 最高速2 倍精度演算アプリケーション
２．１ ループ積分
倍精度演算で十分な精度がでて並列化効果の大きい5つの数値積分プログラムで性能を比較しています。

(a)s221
1 1 x 1 x  y 1 x  y  zS221( s; m1 , m2 , m3 , m4 , m5 )   0 000

22222

1dudzdydx
DCC  ( x  y  z  u )(1  x  y  z  u )  ( x  y )( z  u )E  (1  x  y  z  u )( x  z )( y  u )  ( x  y ) zu  ( z  u ) xy
M 2  xm1  ym2  zm3  um4  (1  x  y  z  u )m5
2

2

222D   sE  M 2C

テストケースs 221(1 : 100,100,0,0,100)
解析近似解 : 0.0380004438127

(b)laportad
1 1 x1 1 x1  x2 1 x1  x2  x3 1 x1  x2  x3  x4

I  



0 0

0

00

1
dx5 dx4 dx3dx2 dx1
2
Dx6  1  x1  x2  x3  x4  x5

D=&-x1**2*x2-x1**2*x3-x1**2*x4-x1**2*x6-x1*x2**2-x1*x2*x3&-2.d0*x1*x2*x4&-x1*x2*x5-x1*x2*x6-x1*x3**2-2.d0*x1*x3*x4-x1*x3*x5x1*x3*x6&-x1*x4**2&-x1*x4*x5-2.d0*x1*x4*x6-x1*x5*x6-x1*x6**2- x2**2*x4x2**2*x5&-x2*x3*x4&-x2*x3*x5-x2*x4**2-2.d0*x2*x4*x5-x2*x4*x6-x2*x5**2x2*x5*x6&-x3**2 *x4&-x3**2*x5-x3*x4**2-2.d0*x3*x4*x5-x3*x4*x6-x3*x5**2x3*x5*x6&-x4**2*x5&-x4**2*x6-x4*x5**2-3.d0*x4*x5*x6-x4*x6**2-x5**2*x6x5*x6**2

解析近似解=0.2762092253588

(c) laportag
1 1 x1 1 x1  x2 1 x1  x2  x3 1 x1  x2  x3  x5 1 x1  x2  x3  x5  x6

I  



0 00000

Cdx dx dx dx dx dx
3 7 6 5 3 2 1
Dx4  1  x1  x2  x3  x5  x6  x7

C=x1*x4+x1*x5+x1*x6+x2*x4+x2*x5+x2*x6+x3*x4+x3*x5+x3*x6+x4*x5& + x4*x6+x4*x7+x5*x7+x6*x7
D=&(x1**2+x2**2+x3**2+x7**2+x1*x2+x1*x3+x1*x7+x2*x3+x2*x7+x3*x7)&*(x4+x5+x6)&-x4**2*(x1+x2+x3+x5+X6+x7)&-(x5**2+x6**2+x5*x6)*(x1+x2+x3+x4+x7)&-3.0*x4*(x1*x5+x6*x7)&-2.0*((x1+x2+x3)*x4*x6+(x2+x3+x7)*x4*x5)

解析近似解=0.1723367907503

(d)laportah
1 1 x1 1 x1  x3 1 x1  x3  x2 1 x1  x3  x2  x7 1 x1  x3  x2  x7  x6

I  0 0

 



0000

C
dx dx dx dx dx dx
3 4 6 7 2 3 1
Dx5  1  x1  x3  x2  x7  x6  x4
C=(x1+x2+x3+x4)*(x4+x5+x6+x7)-x4*x4
cc=x1*m12+x2*m22+x3*m32+x4*m42+x5*m52+x6*m62+x7*m72
D=-c*cc.+s*(x1*x2*(x4+x5+x6+x7)+x5*x6*(x1+x2+x3+x4)+x1*x4*x6+x2*x4*x5).+t*x3*x4*x7.+p12*(x1*x3*(x4+x5+x6+x7)+x3*x4*x5).+p22*(x2*x3*(x4+x5+x6+x7)+x3*x4*x6).+p32*(x5*x7*(x1+x2+x3+x4)+x1*x4*x7).+p42*(x6*x7*(x1+x2+x3+x4)+x2*x4*x7)

テストデータm12=1.0d0
m22=1.0d0
m32=1.0d0
m42=1.0d0
m52=1.0d0
m62=1.0d0
m72=1.0d0
p12=1.0d0
p22=1.0d0
p32=1.0d0
p42=1.0d0
s =1.0d0
t =1.0d0

解析近似解=0.1036407209893

(e)laportai
1 1 x1 1 x1  x2 1 x1  x2  x3 1 x1  x2  x3  x4 1 x1  x2  x3  x4  x5

I  0 0

 





0000

Cdx dx dx dx dx dx
3 6 5 4 3 2 1
Dx7  1  x1  x2  x3  x4  x5  x6
C=(x1+x2+x3+x4+x5)*(x1+x2+x3+x6+x7)-(x1+x2+x3)**2
cc=x1*m12+x2*m22+x3*m32+x4*m42+x5*m52+x6*m62+x7*m72
D=-c*cc.+s*(x1*x2*(x4+x5+x6+x7)+x1*x5*x6+x2*x4*x7x3*x4*x6).+t*x3*(-x4*x6+x5*x7).+p12*(x1*x3*(x4+x5+x6+x7)+x3*x4*(x6+x7)).+p22*(x2*x3*(x4+x5+x6+x7)+x3*x6*(x4+x5)).+p32*(x4*x5*(x1+x2+x3+x6+x7)+x4*x6*(x2+x3)+x1*x5*x7).+p42*(x6*x7*(x1+x2+x3+x4+x5)+x4*x6*(x1+x3)+x2*x5*x7)

テストデータm12=1.0d0
m22=1.0d0
m32=1.0d0
m42=1.0d0
m52=1.0d0
m62=1.0d0
m72=1.0d0
p12=1.0d0
p22=1.0d0
p32=1.0d0
p42=1.0d0
s =1.0d0
t =1.0d0
解析近似解=0.0853513981538

SR16000/M1
LAPORTA (D)
MPI数
ノード数
128256256512
LAPORTA(G)
MPI数
ノード数
128256256512
LAPORTA (D)
(H)
MPI数
ノード数
128256256512
LAPORTA (I)
MPI数
ノード数
128256256512
S221

N=2048

MPI数

ノード数128256256512

GPGPU

複数ノード

実行時間
(秒）
4
3.231716
42.165075
81.617797
81.107155

実行時間(秒）
4684.465022
4544.483556
8345.817823
8277.552501

実行時間
(秒）
4541.664086
4387.666776
8
270.937051
8198.333612

実行時間
(秒）
4728.709051
4508.013126
8368.304897
8258.708141

実行時間
(秒）
4467.774509
4412.210191
8233.916246
8206.360301

LAPORTA
プログラム 実行時間（秒）D
5.85
G
589.553
H569.934
I611.884
S221
2166.834527

BG/Q
LAPORTA(D)
MPI数
ノード数
51210242048

LAPORTA(G)
MPI数
ノード数
51210242048

LAPORTA(H)
MPI数
ノード数
51210242048

LAPORTA(I)
MPI数
ノード数
5121024
2048

S221

N=2048

MPI数

ノード数

5121024
2048

実行時間
(秒）
32 12.844877
326.633127
323.967958

実行時間
(秒）
32 977.217064
32 541.747376
32 439.703755

実行時間
(秒）
32 946.719043
32 514.122564
32 391.466375

実行時間
(秒）
32 954.046258
32 532.563084
32 430.696899

実行時間
(秒）
32 2144.31316
32 1161.5669
32 801.675789

理論最大性能(GFLOPs)
BG/Q 6553.6
SR16000 4node 3921.92
8node 7843.84
GPGPU 1088

2.2 重力多体問題（N体問題）
比較用換算値
log2(26214.4/3921.92)=2.74log(3921.92/1088)=1.85
log2(26214.4/1088)=4.59

Log2(実行時間(秒))16141210
BG/Q

8SR16000/M1
GPGPU

6420151617181920n

粒子数N=2**n
BG/Q 128node (SMP*MPI)ハイブリッド
理論最大性能 26214.4 GFLOPs
SR16000/M1 4node 128MPI フラット
理論最大性能 3921.92GFLOPs
GPGPU 3200 core
理論最大性能 1088GFLOPs

３． 単精度演算アプリケーション
３．１ 姫野ベンチ
サイズ2049*2049*1025 フラットMPI

ソース

CPU

ori

BG/Q
BG/Q
BG/Q
SR16000/M1
SR16000/M1
BG/Q
BG/Q
BG/Q
SR16000/M1
SR16000/M1tune

実行効率MPI数

ノード数 論理最大性能 実行性能
(GFLOPs)(GFLOPs)
2048
326553.6
2768192
12826214.4
975
32768
512
104857.64163
25643921.9213551287843.84269
2048
326553.6
314
8192
128
26214.4
1065
32768
512
104857.65038
256
43921.92488
512
87843.84967

オリジナル BG/Qが良い
チューニング SR16000/M1 が良い