slides - 東京工業大学

Download Report

Transcript slides - 東京工業大学

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