1 / 21

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

アクセラレータを用いた ヘテロ型スーパーコンピュータ上の 並列計算. 遠藤敏夫 ( 東工大 ) ( 松岡聡教授らとの共同研究 ). ~ 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. 理論ピーク性能

shamus
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. アクセラレータを用いたヘテロ型スーパーコンピュータ上の並列計算アクセラレータを用いたヘテロ型スーパーコンピュータ上の並列計算 遠藤敏夫(東工大) (松岡聡教授らとの共同研究) ~ TSUBAME 47.38TFlopsへの道 ~

  2. 500GB 48disks 500GB 48disks 500GB 48disks 東工大TSUBAMEシステム SunFire X4600 16 Opteron core/node x 655nodes Voltaire ISR9288 Infiniband 10Gbps x ~1400 ports 理論ピーク性能 • Opteron: 4.8GFlops x 10480core = 50.4TFlops • ClearSpeed: 96GFlops x 360board = 34.6TFlops • 合計: 85.0TFlops ClearSpeed CSX600 SIMD accelerator x 360 PCI-X boards

  3. 2006年6月 Top500 ランキング TSUBAMEは 38.18TFlops • 世界7位を達成 • 日本1位を達成 この時点では,Opteronのみを利用

  4. Top500とLinpack • Top500の主要ルール • Linpackベンチマークの速度(GFlops)を競う • 密行列連立一次方程式 • プログラムは自由 • 問題サイズは自由 • 典型的には,以下のソフトウェアを用いる • High Performance Linpack (HPL) by A.Petitet • 高速なBLAS library (GOTO BLASなど) • 問題サイズは,メモリに収まる最大とするのが有利

  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: 1334160 Block size: 240 Proc map: Row major Proc grid: 36x144 Panel bcast: 1ring Look ahead: 1 アクセラレータ併用で さらに向上をねらいたい

  6. 本研究の概要 • Linpackを,CPUとSIMDアクセラレータを併用するTSUBAMEで動作させるための課題と解決法 • アクセラレータは一部のノードにのみ • 古典的MPIプログラムを,小さい変更で 47.38TFlops ・・・ヘテロなLinpack性能として世界一 • 大規模計算アプリをヘテロ型システムで効率的に動作させるためのテストケース • TSUBAME,京速計算機 • Cellプロセッサのシステム (IBM Roadrunner) • General purpose GPU

  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ライブラリ

  8. ClearSpeed 行列演算ライブラリ (MxB) x (BxM)行列積の速度 関数call 入力行列データ 計算 出力行列データ return • 行列サイズによる性能差が激しい • 最高で40GFlops程度

  9. N 性能不均一な環境で どうやって高速に? B HPLの性質 6プロセス (2x3)での分割例 • MPIによる並列化 • 行列積の性能でほとんど決まる • 二次元ブロックサイクリック分割により,均等分割

  10. ヘテロ環境での課題 • HPLを,以下の条件で効率的に動作させたい • OpteronとClearSpeedアクセラレータの双方を有効に働かせる必要 • 16 Opteron coreは約70GFlops • ClearSpeedは40GFlops弱 • ClearSpeedは一部のマシンにのみ存在 • HPLへの変更は最小限にしたい • プロセス毎の仕事量は均等のまま 片方だけではダメ

  11. CS Lib CS Lib ヘテロ環境のための方針 二種類のHPLプロセスを導入 • ホストプロセスは,通常通りにGOTO BLASを用い計算 • SIMDプロセスは,行列積演算をアクセラレータに依頼 ホスト プロセス SIMD プロセス SIMD サーバ • SIMDサーバは複数のSIMDプロセスからの依頼を受け付ける • mmapで行列データを共有

  12. 予備実験環境 • TSUBAME 一部ノードを利用 • 2.4GHz Opteron x 16 core / node • 32GB memory / node • Voltaire MPI • GOTO BLAS (ホストプロセス用) • ClearSpeed BLAS (SIMDサーバ用) • HPLの,行列積呼び出し部分を改造

  13. ナイーブな実装の性能 16ノードでの速度 • アクセラレータ追加により,性能が大幅に下がってしまった! 原因究明,コード改良,パラメータチューニングの繰り返し・・・ Full Acc: 全ノードでアクセラレータ使用 Half Acc: 半分のノードにアクセラレータ No Acc: CPUのみ

  14. ClearSpeed アクセラレータ ClearSpeed アクセラレータ ClearSpeed アクセラレータ ClearSpeed アクセラレータ ClearSpeed アクセラレータ Opteron x 16 cores Opteron x 16 cores Opteron x 16 cores Opteron x 16 cores Opteron x 16 cores ノード内資源の利用のチューニング 1プロセス=4スレッドの場合 • アクセラレータとの通信のためのCPU利用率を無視できない • 半端CPU coreも利用

  15. ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch 648ノード3312プロセスの配置 MPO(fiber) x24 IB(InfiniBand) x24 10GB Voltaire InfiniBand 120 nodes 55 nodes 120 nodes 120 nodes 120 nodes 120 nodes ClearSpeedあり 92 • HPLの • プロセス格子 •  なるべく上流の通信量を減らす 36

  16. HPLの改造:Lookaheadの改良 • パネル通信と行列積計算のオーバラップ • ClearSpeedの特性には合わない マルチスレッド化により行列積の細分化を防ぐ オリジナル while (通信が未終了) If (メッセージが来ている) 通信処理 break 一部だけ行列積演算 残りの部分の行列積演算 変更後 スレッド作成 通信処理 スレッド終了待ち 行列積演算 行列積が細切れになると, ClearSpeed BLASの性能は落ちる

  17. 測定時の条件 • 9月最終週,システムメンテナンス時 • 改造HPL + Voltaire MPI + GOTO BLAS + ClearSpeed BLAS • ブロックサイズ • 960 (CPUのみは240) • 行列サイズ • 物理メモリになるべく合わせる • 648へテロノード時:1148160 • プロセス数 • CSあり: 3プロセス+3プロセス • CSなし: 4プロセス

  18. 測定準備 • ClearSpeed利用時に計算結果のエラーが見られた • ||Ax-b||が充分に0に近いかのチェック • ボード上メモリのエラー?通信時のデータ化け? • 計算エラーがあるとTop500で認められない • 360枚それぞれで独自にHPLテスト,異常アクセラレータを洗い出し,交換 • ClearSpeedのクロック周波数を250MHz→233MHzへ • 測定時のシステム全体のピーク82.1TF

  19. 改良・チューニング後の性能 相対性能 (No Acc=1) 47.38TF 38.18TF • 648ノード,360アクセラレータで47.38TF • No Accの38.18TFに比べ,+24% • アクセラレータあたり +25.5GFlops • 行列サイズN=1148160 (No AccではN=1334160) • 実行時間 5.9時間

  20. 行列サイズ v.s. 性能 60ノードでの実験 • Half Accでは行列サイズを小さくする必要 • CSつきノードは1.5倍メモリを占有 • 計算性能とメモリ量が比例する方が効率的

  21. おわりに • ヘテロ型スパコンTSUBAME上で並列Linpack測定 • CPUとSIMDアクセラレータの双方を活用 • 多数のプロセスを起動,プロセス数の調整により不均一性へ対応 • 648ノード,360アクセラレータで47.38TFlopsを達成 • 2006年6月Top500にあてはめると,5位相当の速度 • ヘテロ型システムでのLinpack評価としては世界一 • CPUのみに比べて+24%の速度向上, 消費電力は+1%程度で済んでいる

More Related