Upload
shamus
View
42
Download
0
Embed Size (px)
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
Citation preview
アクセラレータを用いたヘテロ型スーパーコンピュータ
上の並列計算
遠藤敏夫 ( 東工大 )( 松岡聡教授らとの共同研究 )
~ TSUBAME 47.38TFlops への道 ~
東工大 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
2006 年 6 月 Top500 ランキング
TSUBAME は38.18TFlops• 世界7位を達成• 日本1位を達成
この時点では, Opteron のみを利用
Top500 と Linpack
• Top500 の主要ルール– Linpack ベンチマークの速度 (GFlops) を競う
• 密行列連立一次方程式
– プログラムは自由– 問題サイズは自由
• 典型的には,以下のソフトウェアを用いる– High Performance Linpack (HPL) by A.Petitet– 高速な BLAS library (GOTO BLAS など )
• 問題サイズは,メモリに収まる最大とするのが有利
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
アクセラレータ併用でさらに向上をねらいたい
本研究の概要• Linpack を, CPU と SIMD アクセラレータを併用す
る TSUBAME で動作させるための課題と解決法– アクセラレータは一部のノードにのみ– 古典的 MPI プログラムを,小さい変更で
47.38TFlops ・・・ヘテロな Linpack 性能として世界一
• 大規模計算アプリをヘテロ型システムで効率的に動作させるためのテストケース– TSUBAME ,京速計算機– Cell プロセッサのシステム (IBM Roadrunner)– General purpose GPU
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 ライブラリ
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 程度
HPL の性質
• MPI による並列化• 行列積の性能でほとんど決まる• 二次元ブロックサイクリック分
割により,均等分割
N
B
6プロセス (2x3)での分割例
性能不均一な環境でどうやって高速に?
ヘテロ環境での課題• HPL を,以下の条件で効率的に動作させたい
– Opteron と ClearSpeed アクセラレータの双方を有効に働かせる必要
• 16 Opteron core は約 70GFlops• ClearSpeed は 40GFlops 弱
– ClearSpeed は一部のマシンにのみ存在– HPL への変更は最小限にしたい
• プロセス毎の仕事量は均等のまま
片方だけではダメ
ヘテロ環境のための方針二種類の HPL プロセスを導入• ホストプロセスは,通常通りに GOTO BLAS を用い計算• SIMD プロセスは,行列積演算をアクセラレータに依頼
ホストプロセス
SIMDプロセス
SIMDサーバ
SIMD サーバは複数の SIMD プロセスからの依頼を受け付ける• mmap で行列データを共有
CS Lib CS Lib
予備実験環境• TSUBAME 一部ノードを利用
– 2.4GHz Opteron x 16 core / node– 32GB memory / node
• Voltaire MPI• GOTO BLAS ( ホストプロセス用 )• ClearSpeed BLAS (SIMD サーバ用 )• HPL の,行列積呼び出し部分を改造
ナイーブな実装の性能
• アクセラレータ追加により,性能が大幅に下がってしまった!原因究明,コード改良,パラメータチューニングの繰り返し・・・
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 ノードでの速度
ノード内資源の利用のチューニング
• アクセラレータとの通信のための 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アクセラレータ
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 のプロセス格子- なるべく上流の通信量を減らす
HPL の改造 :Lookahead の改良• パネル通信と行列積計算のオーバラップ• ClearSpeed の特性には合わない
マルチスレッド化により行列積の細分化を防ぐ
オリジナル
while ( 通信が未終了 ) If ( メッセージが来ている ) 通信処理 break 一部だけ行列積演算
残りの部分の行列積演算
行列積が細切れになると,ClearSpeed BLAS の性能は落ちる
変更後
スレッド作成
通信処理
スレッド終了待ち
行列積演算
測定時の条件• 9 月最終週,システムメンテナンス時• 改造 HPL + Voltaire MPI + GOTO BLAS + ClearSpeed B
LAS• ブロックサイズ
– 960 (CPU のみは 240)
• 行列サイズ– 物理メモリになるべく合わせる– 648 へテロノード時: 1148160
• プロセス数– CS あり : 3 プロセス +3 プロセス– CS なし : 4 プロセス
測定準備• ClearSpeed 利用時に計算結果のエラーが見られ
た– ||Ax-b|| が充分に 0 に近いかのチェック– ボード上メモリのエラー?通信時のデータ化け?– 計算エラーがあると Top500 で認められない
• 360 枚それぞれで独自に HPL テスト,異常アクセラレータを洗い出し,交換
• ClearSpeed のクロック周波数を 250MHz→233MHz へ– 測定時のシステム全体のピーク 82.1TF
改良・チューニング後の性能
• 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
行列サイズ 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 ノードでの実験
おわりに• ヘテロ型スパコン TSUBAME 上で並列 Linpack 測
定– CPU と SIMD アクセラレータの双方を活用– 多数のプロセスを起動,プロセス数の調整により不均
一性へ対応
• 648 ノード, 360 アクセラレータで 47.38TFlopsを達成– 2006 年 6 月 Top500 にあてはめると,5位相当の速度– ヘテロ型システムでの Linpack 評価としては世界一– CPU のみに比べて +24% の速度向上 , 消費電力は +1%
程度で済んでいる