350 likes | 533 Views
アクセラレータを用いた 大規模へテロ環境における Linpack. 遠藤敏夫 ( 東京工業大学 ) 松岡聡教授らとの共同研究. 高性能計算において注目される アクセラレータ. HPC システムで消費電力と演算性能の比は今までも / これからも重要 用途をより特化した SIMD アクセラレータに注目 GPU, Cell を含む. それぞれ ピークを 表す. ヘテロ型計算機システム. 「用途特化」型プロセッサのみの HPC システムは非現実的 そのままでは, OS , Linux ,コンパイラ,既存アプリなどが動かない
E N D
アクセラレータを用いた大規模へテロ環境におけるLinpackアクセラレータを用いた大規模へテロ環境におけるLinpack 遠藤敏夫 (東京工業大学) 松岡聡教授らとの共同研究
高性能計算において注目されるアクセラレータ高性能計算において注目されるアクセラレータ • HPCシステムで消費電力と演算性能の比は今までも/これからも重要 • 用途をより特化したSIMDアクセラレータに注目 • GPU, Cellを含む それぞれ ピークを 表す
ヘテロ型計算機システム 「用途特化」型プロセッサのみの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
500GB 48disks 500GB 48disks 500GB 48disks 東工大TSUBAME Grid Cluster (2006) SunFire X4600 16 Opteron cores x 655nodes Voltaire ISR9288 Infiniband 10Gbps ピーク演算速度102TFlops = Opteron 49.8TF + ClearSpeed 52.2TF ほぼ1:1 ClearSpeed CSX600 SIMD accelerator x 360 PCI-X boards 648 2008/6 Top500で世界24位(67.7TF) 初登場時7位 (38.18TF) メモリ合計 20TB
16 Opteron cores x 655 Compute nodes 1.6PByte storage 288Port 10Gbps InfiniBand SW x 6 Cooling Towers (~20 units)
TSUBAMEユーザと応用 • 約1,400ユーザ • 東工大教員,院生,学部生 • 一部は他大学,企業 • 広い応用 • 分子動力学 • 物理シミュレーション • データマイニング・・・ TSUBAMEは大きな “Linuxクラスタ”なので,莫大なソフトウェア資産を利用可能 • ClearSpeedの利用 • Matlab, MathematicaのBLAS置き換え • AMBERの一部 • プログラミング利用はこれからか
ヘテロ型システムでの疑問 目的: • ヘテロ型システムにおける大規模アプリケーションの実行 • スケーラビリティの検証 疑問: • 異種のプロセッサを,どうすれば効率的に利用可能? • どのように・どれだけタスクを割り当てる? ClearSpeed X620 accelerator 80GFlops peak AMD Opteron 880 4.8GFlops peak / core +
成果 • 10,368 Opteron コア と 648 ClearSpeed SIMD アクセラレータを混合利用し,効率的なLinpack実行 • + 432 Xeonコアも利用 • 67.7TFlopsを実現:ヘテロ型システムとしてはRoadRunnerに次ぐ2位
TSUBAMEのTop500への挑戦の歴史 • Top500スーパーコンピュータランキング • 年2回 www.top500.orgで発表 • Linpack性能によるランキング Opteron CS x 360 CS x 648 Xeon
異種プロセッサを持つTSUBAMEノードの構成 ClearSpeed Accelerator Other nodes 8 dual-core Opteron CPUs (16 cores) 1GB memory InfiniBand 10Gbps x 2 PCI-X 8Gbps 32GB memory SunFire X4600
ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch TSUBAMEネットワーク構成 MPO(fiber) x24 IB(InfiniBand) x24 • スイッチ二段の木構造 • 上流バンド幅:下流バンド幅=1:5 10GB Voltaire InfiniBand storage 120 nodes 55 nodes 120 nodes 120 nodes 120 nodes 120 nodes
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 プログラミング言語
M B OpteronとClearSpeedのDGEMM性能 GOTO BLAS on Opteron (1 core) CSXL BLAS 2.50 on ClearSpeed (MxB) x (BxM) の行列演算 • 1アクセラレータの性能は1Opteronコアの14倍程度 • ClearSpeedの性能は,行列サイズに大きく影響される - GOTO BLAS is by Kazushige Goto, U. Texas
ClearSpeed 行列演算ライブラリ • BLAS互換の行列積(DGEMM)関数を提供 推測されるDGEMMの挙動 • CPU側で呼び出し,CS側で計算 • 入出力行列はCPU側のメモリ上 • CUDAライブラリと対照的 • 関数呼び出しのたびにPCI-X通信コストがかかる • 計算量O(M2B) • 通信量O(M2+MB) • M, B大きいと有利 PCI-X 入力行列データ 計算 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に近づく
U U L A’ L L U U L U A’ A N U A’ L A’ L A’ L B HPLのアルゴリズム N×N行列AをLU分解 for (k = 0; k < N; k += B) パネル分解(Lを計算) パネルブロードキャスト 行交換通信・ Uを計算 行列の残り全体を更新 行列積の性能で ほとんど決まる
N B HPLのデータ分散 Matrix distribution on 6 (=2x3) processes • 複数プロセスが計算に参加し,並列計算 • 行列は,二次元ブロックサイクリック分割により均等にプロセスへ分配
HPLプログラムの流れ パネル分解など パネル分解など パネル分解など 通信 通信 通信 自分の担当に ついて 行列積 自分の担当に ついて 行列積 自分の担当に ついて 行列積 上へ戻る 上へ戻る 上へ戻る • 速度の差があると、遅い方にひっぱられる • 問題サイズNを大きくしてもこの影響は減らない
HPLプログラムのカーネル • 80:20の経験則 「プログラム実行時間の80%は、20%のコードで費やされる」 • HPLではもっと極端 「プログラム実行時間のほとんどは、1つのカーネル関数DGEMMで費やされる」 本研究では,各処理を,以下のように振り分ける • パネル分解など • MPI通信処理 • 行列積(DGEMM)CPU+アクセラレータで実行 • 注:システム全体では両者の性能比はほぼ1:1 CPUで実行
ヘテロ型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 • ヘテロ性に対応しつつ,各プロセスの負荷を均一に
アクセラレータの時分割 • 現在のアクセラレータは,複数プロセスから同時利用できない • DGEMMのみを行うサーバプロセスを設置 • ClearSpeedを直接操作 • 複数HPLプロセスからDGEMM要求を受付 • 効率化のため,mmapで行列データを共有 HPL プロセス CS Lib DGEMM サーバプロセス
アクセラレータの性質を考慮したチューニングの必要性アクセラレータの性質を考慮したチューニングの必要性 SIMDアクセラレータの性能は,さまざまなパラメータにより大きく影響を受ける • プロセス粒度 • プロセスマッピング • ブロックサイズ それぞれのシステム構成に応じてチューニングが必要
プロセス粒度の性能への影響 粗粒度 プロセス粒度:1プロセスがいくつのCPUコアに対応するか • 粗すぎると,ノード間ヘテロの場合に,バランス調整が困難 • 細かすぎると,オーバヘッド大 • 各プロセスの担当行列が小⇒アクセラレータの性能が下がってしまう • パネルなどの共通データの保持・計算など 細粒度
M B ブロックサイズの性能への影響 • ブロックサイズBが小さすぎると,アクセラレータ性能が大きく低下 • 大きすぎると,パネル分解などのオーバヘッド増加
“CPU-only”構成のチューニング • CPU上のBLAS性能を引き出すことを最優先 x 648 16 Opteron cores • GOTO BLASにとって望ましい,ブロックサイズ240を採用
“Fully-Acc’d”構成のチューニング • フォーカスは • プロセス粒度・ブロックサイズは充分に大きく, ClearSpeed BLASが効率的に動作すること • プロセスが,均等な性能のプロセッサにマッピングされること Clear Speed x 648 16 Opteron cores For PCI-X communication • ClearSpeed BLASの特性から,ブロックサイズ864
Tuning on “Half-Acc’d” Case • アクセラレータありノードとなしノードのバランスが重要 Node w/o ClearSpeed x 288 Node with ClearSpeed Clear Speed x 360 For PCI-X • ブロックサイズ 864
実行環境 • 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
TSUBAMEのLinpack性能 CPU onlyと比べ, • Half Acc’dの場合,+28% • Full Acc’dの場合,+66% • さらにXeonクラスタで+77% • GCOE「計算世界観の深化と展開」TSUBASAクラスタ
おわりに • SIMDアクセラレータを用いた大規模ヘテロ型システムにおけるスケーラビリティを示した • Linpack性能 67.7TFlops • 既存実装のHPLへの改造という形でヘテロ性へ対応 • GPGPUの広がりにより,ヘテロ型システムはより身近に • 計算性能に対し,PCI通信性能の不足が今後問題に