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

Slides:



Advertisements
Similar presentations
1 広島大学 理学研究科 尾崎 裕介 石川 健一. 1. Graphic Processing Unit (GPU) とは? 2. Nvidia CUDA programming model 3. GPU の高速化 4. QCD with CUDA 5. 結果 6. まとめ 2.
Advertisements

HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
CPU/GPUを協調利用する ソフトウェア開発環境
在庫管理問題の動的計画法による 解法とCUDA を用いた高速化
MPIを用いたグラフの並列計算 情報論理工学研究室 藤本 涼一.
情報理工学系研究科 コンピュータ科学専攻 上嶋裕樹
CPUとGPUの 性能比較 -行列計算およびN体問題を用いて-
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
CPUについて HN:セシル.
※ 対称密行列の固有値分解は特異値分解と共通点が多い
Intel AVX命令を用いた並列FFTの実現と評価
A Q R QR分解とは? → × ◆QR分解 QTQ = I (単位行列) ◆応用例 ◆主な計算方法 n m 今回はこの方法に注目
Rを用いたブートストラップ法の 大規模並列計算
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
PCクラスタにおける2個体分散遺伝的アルゴリズムの高速化
DNASシステム上のアプリケーション起動シーケンスのための基盤であるdsh部分の性能評価
対角マトリックスを用いた3次元剛塑性有限要素法の並列計算 対角マトリックスを用いた剛塑性有限要素法
AllReduce アルゴリズムによる QR 分解の精度について
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
分散遺伝的アルゴリズムによる各種クラスタのベンチマーク
各種PC クラスタの性能評価 同志社大学 工学部 廣安 知之 三木 光範 谷村 勇輔.
PCクラスタ上での 連立一次方程式の解の精度保証
理学部情報科学科 金田研究室 指導教官 金田 康正 工藤 誠
ネットワーク性能に合わせた 分散遺伝的アルゴリズムにおける 最適な移住についての検討
スパコンとJLDG HEPの計算環境 HEPnet-J
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
正方行列向け特異値分解の CUDAによる高速化
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
文献名 “Performance Tuning of a CFD Code on the Earth Simulator”
ステンシル計算を対象とした 大規模GPUクラスタ向け 自動並列化フレームワーク
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
応用数理工学特論 第6回 計算理工学専攻 張研究室 山本有作.
高速剰余算アルゴリズムとそのハードウェア実装についての研究
Graphic Card を使った 高性能計算
AMR法フレームワークの様々なアーキテクチャへ向けた発展 研究背景と研究目的 Xeon Phi対応に向けた拡張
MPIとOpenMPを用いた Nクイーン問題の並列化
近況: Phoenixモデル上の データ並列プログラム
リモートホストの異常を検知するための GPUとの直接通信機構
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(NlogN)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似法
九州大学情報基盤研究開発センター長 青柳 睦
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
「コアの数なんて どうでもいい」 五島 正裕(東大).
通信機構合わせた最適化をおこなう並列化ンパイラ
導電性高分子材料の電子状態計算に現れる連立一次方程式に対する 並列直接解法の高性能化
AdaPrec (提案手法) の初回の通信精度選択
最新 IT トレンド ARM.
ARM.
航空エンジンの翼列周り流れ解析のメニーコアシステム向け最適化
スーパーコンピュータ「京」 理化学研究所 計算科学研究センター
GPUを用いた疎行列の格納形式による行列ベクトル積の評価
目的:高速QR分解ルーチンのGPUクラスタ実装
コンピュータの仕組み 〜ハードウェア〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
岩澤全規 理化学研究所 計算科学研究機構 粒子系シミュレータ研究チーム 2015年7月22日 AICS/FOCUS共催 FDPS講習会
高精細計算を実現するAMR法フレームワークの高度化 研究背景と研究目的 複数GPU間での袖領域の交換と効率化
社会の情報インフラストラクチャとして、高性能コンピュータおよびネットワークの重要性はますます増大しています。本研究室では、コンピュータおよびネットワークの高速化を狙いとする並列・分散情報処理の科学と技術に関する研究に取り組んでいます。効率のよいシステムの実現を目指して、下記の項目を追求しています。 ◇コンピュータアーキテクチャ.
「マイグレーションを支援する分散集合オブジェクト」
卒業研究 JCSPを用いたプログラム開発  池部理奈.
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(Nlog2N)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似
メモリ使用量の少ないGCR法の提案 東京大学理学部情報科学科 工藤 誠 東京大学情報基盤センター 黒田 久泰
MPIを用いた並列処理計算 情報論理工学研究室 金久 英之
ARM 株式会社アプライド・マーケティング 大越 章司
長方行列向け特異値分解の 浮動小数点コプロセッサによる 高速化
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
分散メモリ型並列計算機上での行列演算の並列化
アーキテクチャパラメータを利用した並列GCの性能予測
Presentation transcript:

アクセラレータを用いた 大規模へテロ環境における Linpack 遠藤敏夫 (東京工業大学) 松岡聡教授らとの共同研究

高性能計算において注目される アクセラレータ HPCシステムで消費電力と演算性能の比は今までも/これからも重要 用途をより特化したSIMDアクセラレータに注目 GPU, Cellを含む ClearSpeed X620 NVidia GeForce GTX280 ATI Radeon HD 4870 単精度性能 933GFlops 1200GFlops 倍精度性能 80GFlops 78GFlops 240GFlops 消費電力 25W 230W 160W それぞれ ピークを 表す

ヘテロ型計算機システム 「用途特化」型プロセッサのみの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

東工大TSUBAME Grid Cluster (2006) SunFire X4600 16 Opteron cores x 655nodes Voltaire ISR9288 Infiniband 10Gbps 500GB 48disks 500GB 48disks 500GB 48disks ClearSpeed CSX600 SIMD accelerator x 360 PCI-X boards ピーク演算速度102TFlops = Opteron 49.8TF + ClearSpeed 52.2TF ほぼ1:1 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ユーザ 広い応用 ClearSpeedの利用 東工大教員,院生,学部生 一部は他大学,企業 分子動力学 物理シミュレーション データマイニング・・・ TSUBAMEは大きな “Linuxクラスタ”なので,莫大なソフトウェア資産を利用可能 ClearSpeedの利用 Matlab, MathematicaのBLAS置き換え AMBERの一部 プログラミング利用はこれからか

+ ヘテロ型システムでの疑問 目的: ヘテロ型システムにおける大規模アプリケーションの実行 スケーラビリティの検証 疑問: 異種のプロセッサを,どうすれば効率的に利用可能? どのように・どれだけタスクを割り当てる? AMD Opteron 880 4.8GFlops peak / core ClearSpeed X620 accelerator 80GFlops peak +

成果 10,368 Opteron コア と 648 ClearSpeed SIMD アクセラレータを混合利用し,効率的なLinpack実行 + 432 Xeonコアも利用 67.7TFlopsを実現:ヘテロ型システムとしてはRoadRunnerに次ぐ2位

TSUBAMEのTop500への 挑戦の歴史 Top500スーパーコンピュータランキング ’06 春 ’06 秋 ’07春 ’07秋 年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 24 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

TSUBAMEネットワーク構成 スイッチ二段の木構造 上流バンド幅:下流バンド幅=1:5 MPO(fiber) IB(InfiniBand) ISR9288 switch IB(InfiniBand) x24 MPO(fiber) x24 ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch ISR9288 switch 10GB Voltaire InfiniBand    120 nodes storage 120 nodes 120 nodes 120 nodes 120 nodes 55 nodes スイッチ二段の木構造 上流バンド幅:下流バンド幅=1:5

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 プログラミング言語

OpteronとClearSpeedの DGEMM性能 GOTO BLAS on Opteron (1 core) CSXL BLAS 2.50 on ClearSpeed (MxB) x (BxM) の行列演算 B M 1アクセラレータの性能は1Opteronコアの14倍程度 ClearSpeedの性能は,行列サイズに大きく影響される - GOTO BLAS is by Kazushige Goto, U. Texas

ClearSpeed 行列演算ライブラリ BLAS互換の行列積(DGEMM)関数を提供 CPU側で呼び出し,CS側で計算 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)を競う Linpack(HPL)の計算速度(概算) 演算数 直接解法であること 倍精度で計算すること 問題サイズNは自由 Linpack(HPL)の計算速度(概算) 演算数 実行時間       (2/3)N3 (2/3)N3/C + O(N2)/W + その他 計算速度= = C: 全体の密行列積演算性能 W: 通信性能 ⇒ 問題サイズは,メモリに収まる最大とするのが有利     速度はCに近づく

A’ A A’ A’ A’ HPLのアルゴリズム L U L U L U A’ L U L U L L U N×N行列AをLU分解 for (k = 0; k < N; k += B)  パネル分解(Lを計算)  パネルブロードキャスト  行交換通信・ Uを計算  行列の残り全体を更新 L U N B L U A’ L U A’ L U A’ L U A’ L L U A’ A 行列積の性能で ほとんど決まる

HPLのデータ分散 複数プロセスが計算に参加し,並列計算 行列は,二次元ブロックサイクリック分割により均等にプロセスへ分配 Matrix distribution on 6 (=2x3) processes 複数プロセスが計算に参加し,並列計算 行列は,二次元ブロックサイクリック分割により均等にプロセスへ分配 N B

HPLプログラムの流れ 速度の差があると、遅い方にひっぱられる 問題サイズNを大きくしてもこの影響は減らない パネル分解など パネル分解など 通信 通信 通信 自分の担当に ついて 行列積 自分の担当に ついて 行列積 自分の担当に ついて 行列積 上へ戻る 上へ戻る 上へ戻る 速度の差があると、遅い方にひっぱられる 問題サイズ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コアに対応するか 粗すぎると,ノード間ヘテロの場合に,バランス調整が困難 細かすぎると,オーバヘッド大 各プロセスの担当行列が小⇒アクセラレータの性能が下がってしまう パネルなどの共通データの保持・計算など 細粒度

ブロックサイズの性能への影響 ブロックサイズBが小さすぎると,アクセラレータ性能が大きく低下 大きすぎると,パネル分解などのオーバヘッド増加 M

“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クラスタ CPU Half Fully F+X N 1334160 1057536 1088640 1181952 time 11.5h 4.5h 3.8h

おわりに SIMDアクセラレータを用いた大規模ヘテロ型システムにおけるスケーラビリティを示した Linpack性能 67.7TFlops 既存実装のHPLへの改造という形でヘテロ性へ対応 GPGPUの広がりにより,ヘテロ型システムはより身近に 計算性能に対し,PCI通信性能の不足が今後問題に