アクセラレータを用いた 大規模へテロ環境における linpack
DESCRIPTION
アクセラレータを用いた 大規模へテロ環境における Linpack. 遠藤敏夫 ( 東京工業大学 ) 松岡聡教授らとの共同研究. 高性能計算において注目される アクセラレータ. HPC システムで消費電力と演算性能の比は今までも / これからも重要 用途をより特化した SIMD アクセラレータに注目 GPU, Cell を含む. それぞれ ピークを 表す. ヘテロ型計算機システム. 「用途特化」型プロセッサのみの HPC システムは非現実的 そのままでは, OS , Linux ,コンパイラ,既存アプリなどが動かない - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/1.jpg)
アクセラレータを用いた大規模へテロ環境における
Linpack
遠藤敏夫 ( 東京工業大学 )
松岡聡教授らとの共同研究
![Page 2: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/2.jpg)
高性能計算において注目されるアクセラレータ
HPC システムで消費電力と演算性能の比は今までも / これからも重要
用途をより特化した SIMD アクセラレータに注目• GPU, Cell を含む
ClearSpeed X620
NVidia GeForce GTX280
ATI Radeon HD 4870
単精度性能 933GFlops 1200GFlops
倍精度性能 80GFlops 78GFlops 240GFlops
消費電力 25W 230W 160W
それぞれピークを表す
![Page 3: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/3.jpg)
ヘテロ型計算機システム「用途特化」型プロセッサのみの HPC システムは非現実的 そのままでは, OS , Linux ,コンパイラ,既存アプリな
どが動かない• 例外 : Linux が動く Cell プロセッサ
ヘテロ型計算機システム に注目 汎用 CPU により広範囲のソフトウェアの利用
• 典型的には x86/x86-64 CPUs アクセラレータにより高い電力性能比 例 : LANL Roadrunner, 東工大 TSUBAME
![Page 4: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/4.jpg)
LANL RoadRunner (2008)
世界初の Linpack1 ペタを実現したのはヘテロ型スパコン
6120 dual-core Opteronと, 12240 Cell ( 倍精度対応 )
IBM ブレード型ピーク性能 1.375PFlops
90% 以上は Cell による
2008/6 Top500 で世界一, Linpack 1.026PFlops
![Page 5: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/5.jpg)
東工大 TSUBAME Grid Cluster (2006)
500GB48disks 500GB
48disks500GB48disks
Voltaire ISR9288 Infiniband 10Gbps
ClearSpeed CSX600
SIMD acceleratorx 360 PCI-X boards
SunFire X460016 Opteron cores x 655nodes
648
ピーク演算速度 102TFlops= Opteron 49.8TF +
ClearSpeed 52.2TFほぼ1:1 2008/6 Top500 で世界 24 位( 67.7TF)
初登場時 7 位 (38.18TF)メモリ合計 20TB
![Page 6: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/6.jpg)
Cooling Towers (~20 units)Cooling Towers (~20 units)
1.6PByte storage1.6PByte storage16 Opteron cores x16 Opteron cores x
655 Compute nodes655 Compute nodes
288Port 10Gbps288Port 10Gbps
InfiniBand SW x 6InfiniBand SW x 6
![Page 7: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/7.jpg)
TSUBAME ユーザと応用 約 1,400 ユーザ
• 東工大教員,院生,学部生• 一部は他大学,企業
広い応用• 分子動力学• 物理シミュレーション• データマイニング・・・TSUBAME は大きな “ Linux クラスタ”なので,莫大なソフトウェ
ア資産を利用可能 ClearSpeed の利用
• Matlab, Mathematica の BLAS 置き換え• AMBER の一部• プログラミング利用はこれからか
![Page 8: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/8.jpg)
ヘテロ型システムでの疑問目的 : ヘテロ型システムにおける大規模アプリケーションの実
行 スケーラビリティの検証疑問 : 異種のプロセッサを,どうすれば効率的に利用可能? どのように・どれだけタスクを割り当てる?
AMD Opteron 8804.8GFlops peak / core
ClearSpeed X620 accelerator80GFlops peak
+
![Page 9: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/9.jpg)
成果 10,368 Opteron コア と 648 ClearSpeed SIMD ア
クセラレータを混合利用し,効率的な Linpack 実行• + 432 Xeon コアも利用
67.7TFlops を実現:ヘテロ型システムとしては RoadRunner に次ぐ2位
![Page 10: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/10.jpg)
TSUBAME の Top500 への挑戦の歴史
Top500 スーパーコンピュータランキング• 年2回 www.top500.org で発表• Linpack 性能によるランキング
’06 春 ’06 秋 ’07 春 ’07 秋 ’08 春速度 (TF) 38.18 47.38 48.88 56.43 67.70
順位 7 9 14 16 24Opteron
CS x 360 CS x 648
Xeon
![Page 11: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/11.jpg)
異種プロセッサを持つTSUBAME ノードの構成
SunFire X4600
8 dual-coreOpteron CPUs(16 cores)
ClearSpeedAccelerator
Other nodes
32GB memory
1GB memory
PCI-X8Gbps
InfiniBand10Gbps x 2
![Page 12: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/12.jpg)
TSUBAME ネットワーク構成
ISR9288switch
120 nodes
10GBVoltaire InfiniBand
IB(InfiniBand)x24
MPO(fiber)x24
ISR9288switch
ISR9288switch
ISR9288switch
ISR9288switch
ISR9288switch
ISR9288switch
ISR9288switch
120 nodes 120 nodes 120 nodes 120 nodes 55 nodes storage
スイッチ二段の木構造 上流バンド幅:下流バンド幅= 1:5
![Page 13: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/13.jpg)
ClearSpeed X620 アクセラレータ
PCI-X accelerator boards• CSX600 SIMD processor x 2 + 1GB DRAM on board• 210MHz x 2FP x 96SIMD x 2 = 80.6GFlops peak
• Configurable up to 250MHz• Power: 25W/board
提供されるソフトウェア :• CSXL BLAS ライブラリ <= 本研究で利用• CSFFT ライブラリ• Cn プログラミング言語
![Page 14: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/14.jpg)
Opteron と ClearSpeed のDGEMM 性能
0
1
2
3
4
5
0 1000 2000 3000 4000
Matrix size M
Spee
d (G
flops
)
B=960 B=240
(MxB) x (BxM)の行列演算
1 アクセラレータの性能は 1Opteron コアの 14 倍程度 ClearSpeed の性能は,行列サイズに大きく影響される
B M
GOTO BLAS on Opteron (1 core)
0
10
20
30
40
50
60
70
0 2000 4000 6000 8000 10000
12000
Matrix size M
Spe
ed (
GFl
ops)
B=864 B=576
CSXL BLAS 2.50 on ClearSpeed
- GOTO BLAS is by Kazushige Goto, U. Texas
![Page 15: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/15.jpg)
ClearSpeed 行列演算ライブラリ
BLAS 互換の行列積 (DGEMM) 関数を提供 CPU 側で呼び出し, CS
側で計算 入出力行列は CPU 側の
メモリ上• CUDA ライブラリと対照
的 関数呼び出しのたびに
PCI-X 通信コストがかかる• 計算量 O(M2B)• 通信量 O(M2+MB)• M, B 大きいと有利
入力行列データ
出力行列データ
計算DGEMM()
PCI-X
推測される DGEMM の挙動
![Page 16: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/16.jpg)
Linpack と Top500 Linpack は Top500 ランキングで用いられる数値
計算ベンチマーク• N x N 密行列連立一次方程式を解く• TSUBAME の場合は N= 約 100 万
HPL (High-performance Linpack) by A. Petitet• 有名な MPI 並列実装• ブロック化を用いた LU 分解に基づく• 密行列積 (DGEMM) 演算が圧倒的に時間を費やす.
計 O(N3)
![Page 17: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/17.jpg)
Top500 ランキングの主要ルール
Linpack の計算速度 (Flops) を競う• 直接解法であること• 倍精度で計算すること• 問題サイズ N は自由
Linpack(HPL) の計算速度 ( 概算 )
⇒ 問題サイズは,メモリに収まる最大とするのが有利 速度は C に近づく
計算速度 =演算数
実行時間=
(2/3)N3
(2/3)N3/C + O(N2)/W + その他C: 全体の密行列積演算性能W: 通信性能
![Page 18: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/18.jpg)
HPL のアルゴリズム
for (k = 0; k < N; k += B)
パネル分解 (L を計算 )
パネルブロードキャスト 行交換通信・ U を計算 行列の残り全体を更新
LUAA ''
N×N行列 Aを LU 分解
N
B行列積の性能でほとんど決まる
ALL
U
L
U
A’L
U
A’L
U
A’L
U
A’LUA’
![Page 19: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/19.jpg)
HPL のデータ分散
複数プロセスが計算に参加し,並列計算
行列は,二次元ブロックサイクリック分割により均等にプロセスへ分配
N
B
Matrix distribution on 6 (=2x3) processes
![Page 20: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/20.jpg)
HPL プログラムの流れパネル分解など
自分の担当について行列積
通信
上へ戻る
パネル分解など
自分の担当について行列積
通信
上へ戻る
パネル分解など
自分の担当について行列積
通信
上へ戻る
速度の差があると、遅い方にひっぱられる 問題サイズ N を大きくしてもこの影響は減らない
![Page 21: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/21.jpg)
HPL プログラムのカーネル 80:20 の経験則
「プログラム実行時間の 80% は、 20% のコードで費やされる」
HPL ではもっと極端「プログラム実行時間のほとんどは、 1 つのカーネル関数DGEMM で費やされる」
本研究では,各処理を,以下のように振り分ける パネル分解など MPI 通信処理 行列積 (DGEMM) CPU+ アクセラレータで実行
• 注:システム全体では両者の性能比はほぼ1:1
CPU で実行
![Page 22: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/22.jpg)
ヘテロ型 TSUBAME での要件均一環境向けに作られた HPL を,以下の条件下で
効率的に実行したい ノード内へテロ性 : ノード内に,汎用 CPU とア
クセラレータが存在 ノード間へテロ性 : 約半数のノードにだけアク
セラレータ搭載 (’07 春まで ) • DGEMM 性能で約 120GFlops : 70GFlops
HPL への変更は少ないことが望ましい
![Page 23: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/23.jpg)
対象とするシステム構成CPU-Only
Fully-Acc’d
Half-Acc’d
均一環境
ノード内へテロ性
ノード内へテロ性 +ノード間へテロ性
![Page 24: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/24.jpg)
基本方針 (1/2) ノード内へテロ性のために,ライブラリ (DGEMM)層で,異種プロセッサの差異を吸収
しかし,プロセス間の性能をバランスさせる必要・・・
プロセスとプロセッサ間のマッピングを調節• DGEMM は容易に計算分割可能
Processes
Processors
DGEMM 実行中のマッピングの例
![Page 25: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/25.jpg)
基本方針 (2/2) ノード間ヘテロ性のために,各ノードのプロセ
ス数を調節• cf. CHARM++, AMPI from UIUC
ヘテロ性に対応しつつ,各プロセスの負荷を均一に
![Page 26: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/26.jpg)
アクセラレータの時分割 現在のアクセラレータは,
複数プロセスから同時利用できない
DGEMM のみを行うサーバプロセスを設置• ClearSpeed を直接操作• 複数 HPL プロセスから D
GEMM 要求を受付• 効率化のため, mmap で
行列データを共有
HPLプロセス
DGEMMサーバプロセス
CS Lib
![Page 27: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/27.jpg)
アクセラレータの性質を考慮したチューニングの必要性
SIMD アクセラレータの性能は,さまざまなパラメータにより大きく影響を受ける• プロセス粒度• プロセスマッピング• ブロックサイズ
それぞれのシステム構成に応じてチューニングが必要
![Page 28: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/28.jpg)
プロセス粒度の性能への影響プロセス粒度: 1 プロセスがいくつ
の CPU コアに対応するか 粗すぎると,ノード間ヘテロの場
合に,バランス調整が困難 細かすぎると,オーバヘッド大
• 各プロセスの担当行列が小⇒アクセラレータの性能が下がってしまう
• パネルなどの共通データの保持・計算など
細粒度
粗粒度
![Page 29: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/29.jpg)
ブロックサイズの性能への影響 ブロックサイズ B が小さすぎると,
アクセラレータ性能が大きく低下 大きすぎると,パネル分解などのオ
ーバヘッド増加B M
![Page 30: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/30.jpg)
“CPU-only” 構成のチューニング CPU 上の BLAS 性能を引き出すことを最優先
16 Opteron cores
GOTO BLAS にとって望ましい,ブロックサイズ 240 を採用
x 648
![Page 31: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/31.jpg)
“Fully-Acc’d” 構成のチューニング フォーカスは
• プロセス粒度・ブロックサイズは充分に大きく, ClearSpeed BLAS が効率的に動作すること
• プロセスが,均等な性能のプロセッサにマッピングされること
16 Opteron cores
ClearSpeed
For PCI-X communication
ClearSpeed BLAS の特性から,ブロックサイズ 864
x 648
![Page 32: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/32.jpg)
Tuning on “Half-Acc’d” Case アクセラレータありノードとなしノードの
バランスが重要Node w/o ClearSpeed
ClearSpeed
For PCI-X
Node with ClearSpeed
ブロックサイズ 864
x 288
x 360
![Page 33: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/33.jpg)
実行環境 TSUBAME の 648 SunFire X4600 ノード 変更 HPL + Voltaire MPI + GOTO BLAS + C
SXL BLAS 3つのシステム構成 :
• CPU Only: Opteron CPU のみ• Half Acc’d: 648 のうち 360 ノードに ClearSpee
d• Fully Acc’d: 全ノードに ClearSpeedGOTO BLAS is by Kazushige Goto, TACC, Univ. of Texas at Austin
![Page 34: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/34.jpg)
TSUBAME の Linpack 性能
01020304050607080
Spee
d (T
Flop
s)
CPU Only Half Acc'dFully Acc'd Fully Acc'd+X
CPU only と比べ, Half Acc’d の場合,
+28% Full Acc’d の場合,
+66% さらに Xeon クラ
スタで +77%• GCOE「計算世界観の
深化と展開」 TSUBASAクラスタ
CPU Half Fully F+X
N 1334160 1057536 1088640 1181952
time 11.5h 4.5h 3.8h 4.5h
![Page 35: アクセラレータを用いた 大規模へテロ環境における Linpack](https://reader033.vdocuments.mx/reader033/viewer/2022061515/56812a9c550346895d8e5a08/html5/thumbnails/35.jpg)
おわりに SIMD アクセラレータを用いた大規模ヘテロ型システム
におけるスケーラビリティを示した Linpack 性能 67.7TFlops 既存実装の HPL への改造という形でヘテロ性へ対応
GPGPU の広がりにより,ヘテロ型システムはより身近に
計算性能に対し, PCI 通信性能の不足が今後問題に