スーパーコンピュータ入門

「電⼦情報学特論I」
スーパーコンピュータ⼊⾨
2016年6⽉6⽇
⽇本電気株式会社
撫佐 昭裕
1
© NEC Corporation 2015
⽬次
▌スーパーコンピュータとは
▌何に利⽤されているか
▌スーパーコンピュータの構成
▌ベクトル処理(SIMD)
▌メモリシステムと性能
▌まとめ
2
© NEC Corporation 2015
スーパーコンピュータとは
▌科学技術計算を⾼速に⾏うコンピュータ
その時代でもっとも⾼速な処理能⼒を持つコンピュータ群の総称
▌政府の定義
50 TFLOPS以上の性能を持つコンピュータ
(随時変更される)
▌性能の表し⽅
記
号
大きさ
K
103
M
106
G
109
T
1012
• C⾔語: float,double型のデータ
P
1015
• Fortarn:
E
1018
FLOPS
(フロップス)
• Floating-point Operations per Second
• 1秒間に⾏う浮動⼩数点演算の回数
浮動⼩数点データ
3
real,double precisionのデータ
© NEC Corporation 2015
理論性能世界⼀・⽇本⼀
▌理論性能世界⼀位
天河⼆号
54.9 PFLOPS
(パソコンの253,000倍)
電⼒17.8MW
National University of Defense Technology
中国
▌理論性能⽇本⼀位(世界四位)
「京
(K computer)」
11.28 PFLOPS
(パソコンの52,000倍)
電⼒12.7MW
理化学研究所
注意
理論性能と実効性能は異なる
ランキングはTOP500(http://top500.org/)による
4
© NEC Corporation 2015
(参考)パソコンの理論性能
NEC LAVIE Desk Tower
Intel Corei7 (3.4GHz) 4コア
217 GFLOPS(理論性能)
コンピュータの速さ
▌⼀回の浮動⼩数点の計算をあなたは何秒でできるか?
1.234567890123*10-12 + 1.098765432109*10-10
= 1.11111111101023*10-10
▌ある⼈が1秒で1回計算できるとすると60年間計算し続けると
1,893,456,000 (1.8G)
回の計算ができる
▌では,コンピュータでは上記回数を何秒でできるか?
パソコンは0.0087 (8.7m)
秒で計算できる
天河2号は0.000000035 (35n)
秒で計算できる
ただし,これは理想的な話
▌コンピュータは⼈より圧倒的に速い
5
© NEC Corporation 2015
▌スーパーコンピュータとは
▌何に利⽤されているか
▌スーパーコンピューの構成
▌ベクトル処理(SIMD)
▌メモリシステムと性能
▌まとめ
6
© NEC Corporation 2015
シミュレーションの発展
▌科学技術研究の4つの柱
理 論
実 験
シミュレー
ション
データ解析
▌コンピュータシミュレーションの役割拡⼤
理論と実験の限界
• ⾃然現象は複雑で理論や実験だけ究明できない問題が多い
• 実験よりコストが安く,危険性がない
物理法則に従って数値計算を⾏い,理論と実験で究明できない現象を研究
社会インフラに活⽤
7
© NEC Corporation 2015
シミュレーションの例:地球温暖化
▌ 1900年を基準とした気温変化
東大気候センター,海洋研究開発機構,国立環境研究所 提供
8
© NEC Corporation 2015
どんな⽅程式を解いているのか
▌連続の式

   ( v )
t
▌運動⽅程式
v
1
  ( v   ) v  P    F
t

▌状態⽅程式
p  RT
▌熱エネルギーの式
dH  dU  dW
▌その他
放射の式,化学反応の式
9
© NEC Corporation 2015
スーパーコンピュータの必要性
▌地球温暖化シミュレーション
200年間(1900年から2100年)のシミュレーションを実施
解像度:
⼤気
100Km格⼦ ,海洋
全演算数:
8.5×1018
20Km格⼦
(8.5 EFLOPS)
▌1PFLOPSのスーパーコンピュータを利⽤
実⾏効率
20% (理論性能に対する実際の演算性能)
約12時間で計算できる
▌パソコンの場合(200GFLOPS)
実⾏効率
約70年
2%
(実験結果が出る前に地球が温暖化している)
• 本当は動作しない.メモリ容量が⾜りない(1.1TB必要)
10
© NEC Corporation 2015
シミュレーションの解像度
▌シミュレーションは空間,時間の差分計算
温暖化シミュレーションでは⽔平格⼦100Kmを使⽤
気象庁の台⾵進路予測では⽔平格⼦20Kmを使⽤
▌⾃然現象は複雑でミクロからマクロな現象までスケールに幅
ミクロとマクロを同時に計算させるには解像度を上げる必要あり
⽔平格⼦300Kmと10Km
11
© NEC Corporation 2015
スパコンによるシミュレーション例
▌全球⼤気⼤循環モデル ⽔平格⼦10Km
地球シミュレータセンター 提供
12
© NEC Corporation 2015
さらなる⾼速なスーパーコンピュータが必要
▌気象のシミュレーション
⽔平解像度を100Kmから10Kmにすると10×10=100倍の演算量
• 垂直⽅向はほとんど⼤きくできない(対流圏が20km程度のため)
時間解像度を1/10にする必要がある
• 演算量が10倍になる
• CFL条件(シミュレーションの安定化条件)
合計10×10×10=1,000倍の演算量になる
より⾼速なスーパーコンピュータが求められている
13
© NEC Corporation 2015
▌スーパーコンピュータとは
▌何に利⽤されているか
▌スーパーコンピュータの構成
▌ベクトル処理(SIMD)
▌メモリシステムと性能
▌まとめ
14
© NEC Corporation 2015
スーパーコンピュータの原理
並列処理:
処理速度 =
同時に複数の処理を⾏う
処理量(浮動⼩数点データの演算量)
処理時間
クロック周波数を上げる
消費電⼒,発熱の問題
(Power Wall問題)
15
© NEC Corporation 2015
並列処理のイメージ
▌⽕災の消⽕作業
⼀⼈でがんばる
(逐次処理)
複数⼈でバケツリレー
(パイプライン⽅式
並列処理のひとつ)
複数⼈で同時に消化
(並列処理)
16
© NEC Corporation 2015
温暖化の計算を例に
▌地球をいくつかの領域に分割
▌それぞれの領域を同時に別々に処理する
領域0
演算コア0
領域1
演算コア1
領域2
演算コア2
多数の演算器を
・・
・
同時に動かして
ターンアランド
を短縮させる
17
領域n-1
演算コアn-1
領域n
演算コアn
© NEC Corporation 2015
スーパーコンピュータの基本構成
▌多数のコンピュータからなる
▌⾼速ネットワークで接続
並列処理にはデータ交換が多数発⽣する.
コンピュータ0
コンピュータ1
・・・・・・・・・
高速ネットワーク スイッチ
(高速インターコネクト)
18
© NEC Corporation 2015
コンピュータn
コンピュータ内の構成
▌複数のCPUを持つ場合が多い
マルチCPU
▌演算加速機構を持つ場合もある
GPU(Graphics Processing Unit)を⾼速演算に利⽤
インテルXeon Phiを搭載
コンピュータ
コンピュータ
メモリ
CPU
Phi
メモリ
CPU
GPU
メモリ
メモリ
メモリ
CPU
CPU
メモリ
CPU
メモリ
メモリ
19
CPU
© NEC Corporation 2015
CPU内の構成
▌最近のCPUはマルチコア(チップマルチプロセッサ)
LSI1チップにたくさんマイクロプロセッサをのせることができる
• そのマイクロプロセッサをコアと呼んでいる
• 機能は
コア
= 以前のCPU
▌GPUやPhiも同様(GPUはストリーミングマルチプロセッサと⾔う)
Phi
メモリ
© NEC Corporation 2015
CPU
メモリ
メモリ
CPU
CPU
GPU
メモリ
CPU
メモリ
メモリ
20
コンピュータ
コア
スーパーコンピュータの構成
▌スーパーコンピュータ
高速ネットワーク スイッチ
(高速インターコネクト)
多数のコンピュータからなる
⾼速インターコネクト
▌コンピュータの構成
コンピュータ
複数の演算機構からなる
ベクトル命令(SIMD命令)
21
CPU
CPU
CPU
CPU
Phi
Phi
Phi
Phi
メモリ
▌コアの構成
メモリ
メモリ
メモリ
メモリ
メモリ
メモリ
メモリ
メモリ
複数のコアからなる
メモリ
メモリ
メモリ
メモリ
メモリ
メモリ
メモリ
メモリ
▌CPUの構成
コンピュータ
CPU
GPU
コンピュータ
コンピュータ
コンピュータ
CPU
GPU
Phi
CPU CPUGPU
GPU
CPU
GPU
CPU
メモリ
• 演算加速機構を持つ場合もある
メモリ メモリ
複数のCPUからなる
© NEC Corporation 2015
プログラムの実⾏イメージ
▌⾏列ベクトル積(Fortranプログラム)
 A(i, j )  b( j )
j
外側のdoループを並列化する
• 異なるコア,CPU,ノードに処理を割り当てる
!$omp parallel do
do i=1,n
x(i)=0
do j=1,n
x(i)=x(i)+a(i,j)*b(j)
enddo
enddo
!$omp end parallel do
22
© NEC Corporation 2015
コアで実行
並列化
(コア間,CPU間,ノード間)
▌スーパーコンピュータとは
▌何に利⽤されているか
▌スーパーコンピュータの構成
▌ベクトル処理(SIMD)
▌メモリシステムと性能
▌まとめ
23
© NEC Corporation 2015
コア内での並列化
▌コア内部も多くの回路を持ち並列化が⾏われている
スーパースカラー
マルチスレッド
ベクトル処理(SIMD)
▌スーパーコンピュータではベクトル処理が主流になっている
1つの命令で複数のデータを処理する
SIMD(Single Instruction stream Multiple Data stream)とも呼ばれる
命令
演算器
・・・・
命令
演算器
ベクトルパイプライン
データ
・・・・
データ
24
© NEC Corporation 2015
ベクトルパイプラインの例
加算
(A)
結果格納
(R)
・
・
ベクトルパイプライン
Xn
Yn
Y1
Y2
指数比較
Zi
Z1
Z2
・
・
=
X1
X2
Yi
Zn
1
2
3
4
5
6
7
8
9
10
11
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+1
+2
+3
+4
+5
+6
+7
+8
+9
+1
+2
+3
+4
+5
+6
+7
+8
+1
+2
+3
+4
+5
+6
+7
時間
桁合わせ
加算
正規化
結果格納
25
正規化
(N)
結果
データ
+
桁合
(S)
・
・
Xi
指数比較
(C)
© NEC Corporation 2015
ベクトル処理
▌科学技術計算の特⻑
do i =1 , n
DOループ(forループ)の塊
z(i) = a + x(i)
配列データに同⼀演算を繰り返す
▌上記を⾼速に処理するのがベクトル処理
end do
ベクトル:配列データのこと
1命令で複数の処理を⾏う
▌1命令でいくつ処理できるか(世代で異なるので注意)
Intel
Xeon(AVX命令)
4組の倍精度計算を⾏う
Intel Xeon Phi
8組
GPGPU(Pascal)
64組
京コンピュータ
2組
NEC SXシリーズ
256組
26
© NEC Corporation 2015
ベクトルの動作
▌Xeonでは1つの命令で4組計算する
 a * x(1), a * x(2), a * x(3), a * x(4)を同時に計算する
 a * x(5), a * x(6), a * x(7), a * x(8)を同時に計算する
・・・・・・・・・
do i =1 , n
z(i) = a + x(i)
▌SXでは1つの命令で256組
end do
 a * x(1) , ・・・・・・・・・, a * x(256)を同時に計算する
 a * x(256) , ・・・・・・・・・, a * x(512)を同時に計算する
・・・・・・・・・
▌命令数を減らすことができる
▌演算器(パイプライン)を有効に利⽤する
27
© NEC Corporation 2015
ベクトル処理を使うには
▌ベクトル処理はコンパイラが⾃動的に使⽤(オプションや指⽰⾏が
必要な場合もある)
GPGPUはCUDAを利⽤するのが⼀般的,最近OpenACCの利⽤も⾏われて
いる
▌ベクトル処理を利⽤するためには,いくつか制約がある
doループにする
配列を利⽤する
データの依存関係がない
○
28
© NEC Corporation 2015
do i = 1,100
a(i) = 1.0
b(i) = a(i)
end do
×
do i = 1,100
a(i) = 1.0
b(i) = a(i+1)
end do
データの依存関係がない例
▌ベクトル命令の演算順序に注意
do i = 1,100
a(i) = 1.0
b(i) = a(i)
end do
逐次処理
29
ベクトル(Xeon)
a(1) = 1.0
a(1) = 1.0
b(1) = a(1) = 1.0
a(2) = 1.0
b(2) = a(2) = 1.0
a(3) = 1.0
a(2) = 1.0
b(1) = a(1) = 1.0
b(2) = a(2) = 1.0
a(3) = 1.0
© NEC Corporation 2015
データの依存関係がある例
▌演算結果がことなる
do i = 1,100
a(i) = 1.0
b(i) = a(i+1)
end do
逐次処理
30
ベクトル(Xeon)
a(1) = 1.0
a(1) = 1.0
b(1) = a(2)
a(2) = 1.0
b(2) = a(3)
a(3) = 1.0
b(3) = a(4)
a(4) = 1.0
b(4) = a(5)
a(2) = 1.0
b(1) = a(2) = 1.0
b(2) = a(3)
a(3) = 1.0
a(4) = 1.0
b(3) = a(4) = 1.0
b(4) = a(5)
© NEC Corporation 2015
Xeon(SSE命令)での性能
▌1命令1組 VS 1命令2組
do i =1 , n
nの⼤きさを変えて測定
z(i) = x(i) + s * y(i)
end do
性能(GFLOPS)
3
1組
2組
2.5
2
1.5
1
0.5
31
© NEC Corporation 2015
▌スーパーコンピュータとは
▌何に利⽤されているか
▌スーパーコンピュータの構成
▌ベクトル処理(SIMD)
▌メモリシステムと性能
▌まとめ
32
© NEC Corporation 2015
1M
512K
256K
64K
128K
ループ長(n)
32K
16K
8K
4K
2K
1K
256
128
32
16
4
1
0
コンピュータの性能はメモリデータ転送能⼒が重要
▌Memory Wall問題
CPUとメモリの性能差は拡⼤
100,000
▌スーパーコンピュータの性能は
メモリシステムの性能で決まる
Performanc e
10,000
Me mory
1,000
100
メモリバンド幅
10
1
メモリレーテンシー
メモリ
Proce ssor
1 98 0
19 85
19 90
199 5
2 00 0
2 00 5
①読み込み
CPU
②処理
③書き戻し
33
© NEC Corporation 2015
データはメモリから転送される
▌計算に必要なデータはメモリから転送される
データA,Bを転送
C = A + B
メモリ
データCを転送
CPU
1演算でメモリから2個×8B,メモリへ1個×8Bを転送が必要
• 1演算あたり24Bのデータが転送される
▌計算の種類によって転送量がかわる
データBを転送
C = 3.0 + B
メモリ
データCを転送
CPU
3.0
1演算でメモリから1個×8B,メモリへ1個×8Bを転送が必要
• 1演算あたり16Bのデータが転送される
34
© NEC Corporation 2015
20 10
メモリバンド幅が演算性能を決める
▌パソコン(NEC LAVIE Desk Tower)のメモリバンド幅
単位時間でのデータ転送能⼒:34GB/s
▌C=A+B:1秒間に何回演算ができるか
演算性能
217G回
34GB/24B =
217GFLOPS
メモリバンド幅
34GB/s
1.4G回
▐ C=3.0+A:1秒間に何回演算ができるか
演算性能
217 GFLOPS
メモリバンド幅
34GB/s
217G回
34GB/16B =
2.1G回
▌CPUは理論性能通りに動作しない
CPUはデータが揃うまで空回りしている
35
© NEC Corporation 2015
キャッシュメモリの導⼊
▌プログラムの局所性
1度使ったデータは再度使われる可能性が⾼い
CPU内に⾼速メモリ(キャッシュ)を設ける
メモリとのデータ転送を削減できる
▌C=A+BでBがキャッシュにあり,Cをキャッシュに格納する場合
メモリバンド幅
34GB/s
性能が改善される
34GB / 8B = 4.25G回
データAを転送
メモリ
キャッシュ
B,C
CPU
▌メモリからデータを転送する限り,メモリバンド幅が⾼い⽅が良い
36
© NEC Corporation 2015
実機による実験
▌NEC SX-7 のメモリバンド幅を変えて性能を測定
演算性能
8.8GFLOPS
メモリバンド幅
35.3GB/s,17.7GB/s,8.83GB/s
実⾏効率を測定
• 理論演算性能の何割がでているか?
37
© NEC Corporation 2015
B/F値
▌コンピュータの性能はCPU性能とメモリ性能のバランスで決まる
▌メモリバンド幅と演算性能の⽐を取ってみる (B/F値)
B / F 値 
メモリバンド幅 B/s
演算性能 FLOPS
▌前記実験では
演算性能 8.8GFLOP
メモリバンド幅
35.3GB/s
4 B/F

17.7GB/s
2

8.83GB/s
1
▌B/Fは演算性能に対するメモリからのデータ供給能⼒をあらわす指
標になっている
38
© NEC Corporation 2015
実機による実験
▌B/Fが異なるコンピュータで性能を調査
プロセッサ
メモリバンド幅
理論性能
名称
(GB/s)
(Gflops)
Xeon X5460
10.67
50.56
0.2
Xeon X5550
25.6
42.56
0.6
64
16
4
NEC SX-8
実⾏性能の⽐較
39
B/F
実⾏効率の⽐較
© NEC Corporation 2015
最近のCPUのB/F
プロセッサ
メモリバンド幅
理論性能
名称
(GB/s)
(Gflops)
68
240
0.28
Xeon Phi
352
1065
0.33
GPGPU(Pascal)
720
4800
0.15
64
128
0.50
256
256
1.00
Xeon E5-2680v3
京(SPARC64TM VIIIfx)
SX-ACE
▌演算性能が⾼くなるとB/Fが低くなる傾向がある
▌効率良く演算機が動作しなくなってくる
▌キャッシュやオンチップメモリを活⽤する
40
© NEC Corporation 2015
B/F
▌スーパーコンピュータとは
▌何に利⽤されているか
▌スーパーコンピュータの構成
▌ベクトル処理(SIMD)
▌メモリシステムと性能
▌まとめ
41
© NEC Corporation 2015
まとめ
▌スーパーコンピュータは
その時代の⾼速な科学技術計算⽤コンピュータ
科学技術シミュレーションを⽀えている
• より⾼速なスーパーコンピュータが求められている
多くの演算器と⾼速ネットワークから構成されている
• 並列処理で速くなっている
コアを⾼速に利⽤するためにはベクトル処理が必要
メモリからのデータ供給能⼒(B/F値)で性能がきまる
• CPUだけが速くてもだめ
• Memory Wall問題を超えるコンピュータが必要
42
© NEC Corporation 2015