アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

21
アアアアアアアアアアア アアアアアアアアアアアアアアアア アアアア アアアア ( アアア ) ( アアアアアアアアアアアア ) ~ TSUBAME 47.38TFlops アアア ~

Upload: shamus

Post on 30-Jan-2016

42 views

Category:

Documents


0 download

DESCRIPTION

アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算. 遠藤敏夫 ( 東工大 ) ( 松岡聡教授らとの共同研究 ). ~ TSUBAME 47.38TFlops への道 ~. 500GB 48disks. 500GB 48disks. 500GB 48disks. 東工大 TSUBAME システム. SunFire X4600 16 Opteron core/node x 655nodes. Voltaire ISR9288 Infiniband 10Gbps x ~1400 ports. 理論ピーク性能 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

アクセラレータを用いたヘテロ型スーパーコンピュータ

上の並列計算

遠藤敏夫 ( 東工大 )( 松岡聡教授らとの共同研究 )

~ TSUBAME 47.38TFlops への道 ~

Page 2: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

東工大 TSUBAME システム

理論ピーク性能• Opteron: 4.8GFlops x 10480core = 50.4TFlops• ClearSpeed: 96GFlops   x 360board = 34.6TFlops• 合計: 85.0TFlops

500GB48disks 500GB

48disks500GB48disks

ClearSpeed CSX600 SIMD acceleratorx 360 PCI-X boards

SunFire X460016 Opteron core/nodex 655nodes

Voltaire ISR9288 Infiniband 10Gbps x ~1400 ports

Page 3: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

2006 年 6 月 Top500 ランキング

TSUBAME は38.18TFlops• 世界7位を達成• 日本1位を達成

この時点では, Opteron のみを利用

Page 4: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

Top500 と Linpack

• Top500 の主要ルール– Linpack ベンチマークの速度 (GFlops) を競う

• 密行列連立一次方程式

– プログラムは自由– 問題サイズは自由

• 典型的には,以下のソフトウェアを用いる– High Performance Linpack (HPL) by A.Petitet– 高速な BLAS library (GOTO BLAS など )

• 問題サイズは,メモリに収まる最大とするのが有利

Page 5: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

2006 年 6 月ランキングでの性能測定

• High Performance Linpack (HPL)

• 648 ノード , 10368 CPU core• 5184 プロセス x 2 core

– GOTO BLAS のスレッド並列化機能を利用

• Voltaire MPI• GOTO BLAS

38.18 TFlops実行時間 : 11.5 時間

主要パラメータMatrix size: 1334160Block size: 240Proc map: Row majorProc grid: 36x144Panel bcast: 1ringLook ahead: 1

アクセラレータ併用でさらに向上をねらいたい

Page 6: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

本研究の概要• Linpack を, CPU と SIMD アクセラレータを併用す

る TSUBAME で動作させるための課題と解決法– アクセラレータは一部のノードにのみ– 古典的 MPI プログラムを,小さい変更で

47.38TFlops ・・・ヘテロな Linpack 性能として世界一

• 大規模計算アプリをヘテロ型システムで効率的に動作させるためのテストケース– TSUBAME ,京速計算機– Cell プロセッサのシステム (IBM Roadrunner)– General purpose GPU

Page 7: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

ClearSpeed アクセラレータ

• 理論性能 96GFlops の PCI-X アクセラレータボード– CSX600 SIMD processor x 2 と, 1GB DRAM– 0.5GFlops PE x 96 x 2 (192 並列 )– PCI-X バス 1.06GB/s– 消費電力 25W

• 利用するためのソフトウェア:– Cn プログラミング言語– 行列演算ライブラリ ← 本研究で利用– FFT ライブラリ

Page 8: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

ClearSpeed 行列演算ライブラリ

入力行列データ

出力行列データ

関数 call

return

計算

0

10

20

30

40

0 2000 4000 6000 8000 1000012000

matrix size MSpe

ed (G

Flop

s)

B=960 B=768B=576 B=384

(MxB) x (BxM) 行列積の速度

• 行列サイズによる性能差が激しい• 最高で 40GFlops 程度

Page 9: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

HPL の性質

• MPI による並列化• 行列積の性能でほとんど決まる• 二次元ブロックサイクリック分

割により,均等分割

N

B

6プロセス (2x3)での分割例

性能不均一な環境でどうやって高速に?

Page 10: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

ヘテロ環境での課題• HPL を,以下の条件で効率的に動作させたい

– Opteron と ClearSpeed アクセラレータの双方を有効に働かせる必要

• 16 Opteron core は約 70GFlops• ClearSpeed は 40GFlops 弱

– ClearSpeed は一部のマシンにのみ存在– HPL への変更は最小限にしたい

• プロセス毎の仕事量は均等のまま

片方だけではダメ

Page 11: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

ヘテロ環境のための方針二種類の HPL プロセスを導入• ホストプロセスは,通常通りに GOTO BLAS を用い計算• SIMD プロセスは,行列積演算をアクセラレータに依頼

ホストプロセス

SIMDプロセス

SIMDサーバ

SIMD サーバは複数の SIMD プロセスからの依頼を受け付ける•  mmap で行列データを共有

CS Lib CS Lib

Page 12: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

予備実験環境• TSUBAME 一部ノードを利用

– 2.4GHz Opteron x 16 core / node– 32GB memory / node

• Voltaire MPI• GOTO BLAS ( ホストプロセス用 )• ClearSpeed BLAS (SIMD サーバ用 )• HPL の,行列積呼び出し部分を改造

Page 13: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

ナイーブな実装の性能

• アクセラレータ追加により,性能が大幅に下がってしまった!原因究明,コード改良,パラメータチューニングの繰り返し・・・

Full Acc: 全ノードでアクセラレータ使用

Half Acc: 半分のノードにアクセラレータ

No Acc: CPU のみ

0

200

400

600

800

1000

1200

0 50000 100000 150000Matrix size N

Spe

ed (

GF

lops

)

Full Acc Half Acc No Acc

16 ノードでの速度

Page 14: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

ノード内資源の利用のチューニング

• アクセラレータとの通信のための CPU 利用率を無視できない• 半端 CPU core も利用

Opteron x 16 cores

ClearSpeedアクセラレータ

1 プロセス =4 スレッドの場合

Opteron x 16 cores

ClearSpeedアクセラレータ

Opteron x 16 cores

ClearSpeedアクセラレータ

Opteron x 16 cores

ClearSpeedアクセラレータ

Opteron x 16 cores

ClearSpeedアクセラレータ

Page 15: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

648 ノード 3312 プロセスの配置

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

36

92ClearSpeed あり

HPL のプロセス格子- なるべく上流の通信量を減らす

Page 16: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

HPL の改造 :Lookahead の改良• パネル通信と行列積計算のオーバラップ• ClearSpeed の特性には合わない

マルチスレッド化により行列積の細分化を防ぐ

オリジナル

while ( 通信が未終了 ) If ( メッセージが来ている ) 通信処理 break 一部だけ行列積演算

残りの部分の行列積演算

行列積が細切れになると,ClearSpeed BLAS の性能は落ちる

変更後

スレッド作成

通信処理

スレッド終了待ち

行列積演算

Page 17: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

測定時の条件• 9 月最終週,システムメンテナンス時• 改造 HPL + Voltaire MPI + GOTO BLAS + ClearSpeed B

LAS• ブロックサイズ

– 960 (CPU のみは 240)

• 行列サイズ– 物理メモリになるべく合わせる– 648 へテロノード時: 1148160

• プロセス数– CS あり : 3 プロセス +3 プロセス– CS なし : 4 プロセス

Page 18: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

測定準備• ClearSpeed 利用時に計算結果のエラーが見られ

た– ||Ax-b|| が充分に 0 に近いかのチェック– ボード上メモリのエラー?通信時のデータ化け?– 計算エラーがあると Top500 で認められない

• 360 枚それぞれで独自に HPL テスト,異常アクセラレータを洗い出し,交換

• ClearSpeed のクロック周波数を 250MHz→233MHz へ– 測定時のシステム全体のピーク 82.1TF

Page 19: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

改良・チューニング後の性能

• 648 ノード, 360 アクセラレータで 47.38TF– No Acc の 38.18TF に比べ, +24%– アクセラレータあたり +25.5GFlops– 行列サイズ N=1148160 (No Acc では N=1334160)– 実行時間 5.9 時間

05

101520253035404550

60 350 648

Number of nodes

Spe

ed (T

Flop

s)

Full Acc Half Acc No Acc

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

60 350 648

Number of nodes

Rel

ativ

e S

peed

Full Acc Half Acc No Acc

相対性能 (No Acc=1)47.38TF38.18TF

Page 20: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

行列サイズ v.s. 性能

0

1000

2000

3000

4000

5000

6000

0 200000 400000Matrix size N

Spe

ed (G

Flo

ps)

Full CS Half CSNo CS

• Half Acc では行列サイズを小さくする必要– CS つきノードは 1.5

倍メモリを占有– 計算性能とメモリ量

が比例する方が効率的

60 ノードでの実験

Page 21: アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算

おわりに• ヘテロ型スパコン TSUBAME 上で並列 Linpack 測

定– CPU と SIMD アクセラレータの双方を活用– 多数のプロセスを起動,プロセス数の調整により不均

一性へ対応

• 648 ノード, 360 アクセラレータで 47.38TFlopsを達成– 2006 年 6 月 Top500 にあてはめると,5位相当の速度– ヘテロ型システムでの Linpack 評価としては世界一– CPU のみに比べて +24% の速度向上 , 消費電力は +1%

程度で済んでいる