35
アアアアアアアアアアア アアアアアアアアアアアア Linpack アアアア ( アアアアアア ) アアアアアアアアアアアア

アクセラレータを用いた 大規模へテロ環境における Linpack

Embed Size (px)

DESCRIPTION

アクセラレータを用いた 大規模へテロ環境における Linpack. 遠藤敏夫 ( 東京工業大学 ) 松岡聡教授らとの共同研究. 高性能計算において注目される アクセラレータ. HPC システムで消費電力と演算性能の比は今までも / これからも重要 用途をより特化した SIMD アクセラレータに注目 GPU, Cell を含む. それぞれ ピークを 表す. ヘテロ型計算機システム. 「用途特化」型プロセッサのみの HPC システムは非現実的 そのままでは, OS , Linux ,コンパイラ,既存アプリなどが動かない - PowerPoint PPT Presentation

Citation preview

Page 1: アクセラレータを用いた 大規模へテロ環境における Linpack

アクセラレータを用いた大規模へテロ環境における

Linpack

遠藤敏夫 ( 東京工業大学 )

松岡聡教授らとの共同研究

Page 2: アクセラレータを用いた 大規模へテロ環境における Linpack

高性能計算において注目されるアクセラレータ

HPC システムで消費電力と演算性能の比は今までも / これからも重要

用途をより特化した SIMD アクセラレータに注目• GPU, Cell を含む

ClearSpeed X620

NVidia GeForce GTX280

ATI Radeon HD 4870

単精度性能 933GFlops 1200GFlops

倍精度性能 80GFlops 78GFlops 240GFlops

消費電力 25W 230W 160W

それぞれピークを表す

Page 3: アクセラレータを用いた 大規模へテロ環境における Linpack

ヘテロ型計算機システム「用途特化」型プロセッサのみの HPC システムは非現実的 そのままでは, OS , Linux ,コンパイラ,既存アプリな

どが動かない• 例外 : Linux が動く Cell プロセッサ

ヘテロ型計算機システム に注目 汎用 CPU により広範囲のソフトウェアの利用

• 典型的には x86/x86-64 CPUs アクセラレータにより高い電力性能比 例 : LANL Roadrunner, 東工大 TSUBAME

Page 4: アクセラレータを用いた 大規模へテロ環境における Linpack

LANL RoadRunner (2008)

世界初の Linpack1 ペタを実現したのはヘテロ型スパコン

6120 dual-core Opteronと, 12240 Cell ( 倍精度対応 )

IBM ブレード型ピーク性能 1.375PFlops

90% 以上は Cell による

2008/6 Top500 で世界一, Linpack 1.026PFlops

Page 5: アクセラレータを用いた 大規模へテロ環境における Linpack

東工大 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

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

TSUBAME ユーザと応用 約 1,400 ユーザ

• 東工大教員,院生,学部生• 一部は他大学,企業

広い応用• 分子動力学• 物理シミュレーション• データマイニング・・・TSUBAME は大きな “ Linux クラスタ”なので,莫大なソフトウェ

ア資産を利用可能 ClearSpeed の利用

• Matlab, Mathematica の BLAS 置き換え• AMBER の一部• プログラミング利用はこれからか

Page 8: アクセラレータを用いた 大規模へテロ環境における Linpack

ヘテロ型システムでの疑問目的 : ヘテロ型システムにおける大規模アプリケーションの実

行 スケーラビリティの検証疑問 : 異種のプロセッサを,どうすれば効率的に利用可能? どのように・どれだけタスクを割り当てる?

AMD Opteron 8804.8GFlops peak / core

ClearSpeed X620 accelerator80GFlops peak

+

Page 9: アクセラレータを用いた 大規模へテロ環境における Linpack

成果 10,368 Opteron コア と 648 ClearSpeed SIMD ア

クセラレータを混合利用し,効率的な Linpack 実行• + 432 Xeon コアも利用

67.7TFlops を実現:ヘテロ型システムとしては RoadRunner に次ぐ2位

Page 10: アクセラレータを用いた 大規模へテロ環境における Linpack

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

異種プロセッサを持つTSUBAME ノードの構成

SunFire X4600

8 dual-coreOpteron CPUs(16 cores)

ClearSpeedAccelerator

Other nodes

32GB memory

1GB memory

PCI-X8Gbps

InfiniBand10Gbps x 2

Page 12: アクセラレータを用いた 大規模へテロ環境における Linpack

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

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

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

ClearSpeed 行列演算ライブラリ

BLAS 互換の行列積 (DGEMM) 関数を提供 CPU 側で呼び出し, CS

側で計算 入出力行列は CPU 側の

メモリ上• CUDA ライブラリと対照

的 関数呼び出しのたびに

PCI-X 通信コストがかかる• 計算量 O(M2B)• 通信量 O(M2+MB)• M, B 大きいと有利

入力行列データ

出力行列データ

計算DGEMM()

PCI-X

推測される DGEMM の挙動

Page 16: アクセラレータを用いた 大規模へテロ環境における Linpack

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

Top500 ランキングの主要ルール

Linpack の計算速度 (Flops) を競う• 直接解法であること• 倍精度で計算すること• 問題サイズ N は自由

Linpack(HPL) の計算速度 ( 概算 )

⇒  問題サイズは,メモリに収まる最大とするのが有利    速度は C に近づく

計算速度 =演算数

実行時間=

       (2/3)N3

(2/3)N3/C + O(N2)/W + その他C: 全体の密行列積演算性能W: 通信性能

Page 18: アクセラレータを用いた 大規模へテロ環境における Linpack

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

HPL のデータ分散

複数プロセスが計算に参加し,並列計算

行列は,二次元ブロックサイクリック分割により均等にプロセスへ分配

N

B

Matrix distribution on 6 (=2x3) processes

Page 20: アクセラレータを用いた 大規模へテロ環境における Linpack

HPL プログラムの流れパネル分解など

自分の担当について行列積

通信

上へ戻る

パネル分解など

自分の担当について行列積

通信

上へ戻る

パネル分解など

自分の担当について行列積

通信

上へ戻る

速度の差があると、遅い方にひっぱられる 問題サイズ N を大きくしてもこの影響は減らない

Page 21: アクセラレータを用いた 大規模へテロ環境における Linpack

HPL プログラムのカーネル 80:20 の経験則

「プログラム実行時間の 80% は、 20% のコードで費やされる」

HPL ではもっと極端「プログラム実行時間のほとんどは、 1 つのカーネル関数DGEMM で費やされる」

本研究では,各処理を,以下のように振り分ける パネル分解など MPI 通信処理 行列積 (DGEMM)       CPU+ アクセラレータで実行

• 注:システム全体では両者の性能比はほぼ1:1

CPU で実行

Page 22: アクセラレータを用いた 大規模へテロ環境における Linpack

ヘテロ型 TSUBAME での要件均一環境向けに作られた HPL を,以下の条件下で

効率的に実行したい ノード内へテロ性 : ノード内に,汎用 CPU とア

クセラレータが存在 ノード間へテロ性 : 約半数のノードにだけアク

セラレータ搭載 (’07 春まで ) • DGEMM 性能で約 120GFlops : 70GFlops

HPL への変更は少ないことが望ましい

Page 23: アクセラレータを用いた 大規模へテロ環境における Linpack

対象とするシステム構成CPU-Only

Fully-Acc’d

Half-Acc’d

均一環境

ノード内へテロ性

ノード内へテロ性 +ノード間へテロ性

Page 24: アクセラレータを用いた 大規模へテロ環境における Linpack

基本方針 (1/2) ノード内へテロ性のために,ライブラリ (DGEMM)層で,異種プロセッサの差異を吸収

しかし,プロセス間の性能をバランスさせる必要・・・

プロセスとプロセッサ間のマッピングを調節• DGEMM は容易に計算分割可能

Processes

Processors

DGEMM 実行中のマッピングの例

Page 25: アクセラレータを用いた 大規模へテロ環境における Linpack

基本方針 (2/2) ノード間ヘテロ性のために,各ノードのプロセ

ス数を調節• cf. CHARM++, AMPI from UIUC

ヘテロ性に対応しつつ,各プロセスの負荷を均一に

Page 26: アクセラレータを用いた 大規模へテロ環境における Linpack

アクセラレータの時分割 現在のアクセラレータは,

複数プロセスから同時利用できない

DGEMM のみを行うサーバプロセスを設置• ClearSpeed を直接操作• 複数 HPL プロセスから D

GEMM 要求を受付• 効率化のため, mmap で

行列データを共有

HPLプロセス

DGEMMサーバプロセス

CS Lib

Page 27: アクセラレータを用いた 大規模へテロ環境における Linpack

アクセラレータの性質を考慮したチューニングの必要性

SIMD アクセラレータの性能は,さまざまなパラメータにより大きく影響を受ける• プロセス粒度• プロセスマッピング• ブロックサイズ

それぞれのシステム構成に応じてチューニングが必要

Page 28: アクセラレータを用いた 大規模へテロ環境における Linpack

プロセス粒度の性能への影響プロセス粒度: 1 プロセスがいくつ

の CPU コアに対応するか 粗すぎると,ノード間ヘテロの場

合に,バランス調整が困難 細かすぎると,オーバヘッド大

• 各プロセスの担当行列が小⇒アクセラレータの性能が下がってしまう

• パネルなどの共通データの保持・計算など

細粒度

粗粒度

Page 29: アクセラレータを用いた 大規模へテロ環境における Linpack

ブロックサイズの性能への影響 ブロックサイズ B が小さすぎると,

アクセラレータ性能が大きく低下 大きすぎると,パネル分解などのオ

ーバヘッド増加B M

Page 30: アクセラレータを用いた 大規模へテロ環境における Linpack

“CPU-only” 構成のチューニング CPU 上の BLAS 性能を引き出すことを最優先

16 Opteron cores

GOTO BLAS にとって望ましい,ブロックサイズ 240 を採用

x 648

Page 31: アクセラレータを用いた 大規模へテロ環境における Linpack

“Fully-Acc’d” 構成のチューニング フォーカスは

• プロセス粒度・ブロックサイズは充分に大きく, ClearSpeed BLAS が効率的に動作すること

• プロセスが,均等な性能のプロセッサにマッピングされること

16 Opteron cores

ClearSpeed

For PCI-X communication

ClearSpeed BLAS の特性から,ブロックサイズ 864

x 648

Page 32: アクセラレータを用いた 大規模へテロ環境における Linpack

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

実行環境 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

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

おわりに SIMD アクセラレータを用いた大規模ヘテロ型システム

におけるスケーラビリティを示した Linpack 性能 67.7TFlops 既存実装の HPL への改造という形でヘテロ性へ対応

GPGPU の広がりにより,ヘテロ型システムはより身近に

計算性能に対し, PCI 通信性能の不足が今後問題に