計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」

Slides:



Advertisements
Similar presentations
HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
Advertisements

大規模な三角 Toeplitz 線形方 程式の高速解法とその応用 ○ 安村 修一(法政大学 4 年) 李 磊(法政大学) 日本応用数理学会「行列・固有値の解法とその応用」研究部会 第6回研究会.
Level-3 BLASに基づく特異値分解 アルゴリズムのSMP上での性能
CPUとGPUの 性能比較 -行列計算およびN体問題を用いて-
キャッシュ付PRAM上の 並列クィックソートと 並列マージソート
CPUについて HN:セシル.
※ 対称密行列の固有値分解は特異値分解と共通点が多い
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Intel AVX命令を用いた並列FFTの実現と評価
Fill-in LevelつきIC分解による 前処理について
A Q R QR分解とは? → × ◆QR分解 QTQ = I (単位行列) ◆応用例 ◆主な計算方法 n m 今回はこの方法に注目
Problem J Tile Puzzle 原案:野田 担当:平野,吉田,泉,松本.
三重対角化アルゴリズムの性能評価 早戸拓也・廣田悠輔.
全体ミーティング (4/25) 村田雅之.
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
4.3 連立1次方程式   Ax = b   (23) と書くことができる。
AllReduce アルゴリズムによる QR 分解の精度について
コンピュータの主役はCPU(Central Processing Unit)
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
分散遺伝的アルゴリズムによる各種クラスタのベンチマーク
記 憶 管 理(2) オペレーティングシステム 第10回.
『コンピュータ構成要素』 (C)Copyright, Toshiomi KOBAYASHI,
IT入門B2 ー 連立一次方程式 ー.
PCクラスタ上での 連立一次方程式の解の精度保証
首都大学東京 都市教養学部数理科学コース 関谷博之
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
理学部情報科学科 金田研究室 指導教官 金田 康正 工藤 誠
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
応用数理工学特論 第5回 計算理工学専攻 張研究室 山本有作.
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
正方行列向け特異値分解の CUDAによる高速化
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
文献名 “Performance Tuning of a CFD Code on the Earth Simulator”
応用数学 計算理工学専攻 杉原研究室 山本有作.
OpenMPハードウェア動作合成システムの検証(Ⅰ)
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
応用数理工学特論 第6回 計算理工学専攻 張研究室 山本有作.
高速剰余算アルゴリズムとそのハードウェア実装についての研究
応用数理工学特論 第9回 高速フーリエ変換の高性能化手法
MPIを用いた最適な分散処理 情報論理工学研究室 角 仁志
応用数理工学特論 第9回 高速フーリエ変換とその並列化
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
Level-3 BLASに基づく二重対角化 アルゴリズムとその性能評価
PGIコンパイラーによる ディレクティブベースのGPGPU
#6 性能向上、ブレイクスルー、集中と分散 Yutaka Yasuda.
最適化の方法 中田育男著 コンパイラの構成と最適化 朝倉書店, 1999年 第11章.
梅澤威志 隣の芝は茶色いか 梅澤威志
コンピュータの歴史 〜計算速度の進歩〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
導電性高分子材料の電子状態計算に現れる連立一次方程式に対する 並列直接解法の高性能化
前回の授業への質問 質問:プロトコルアナライザで測定できる範囲はどこまでか?
GPUを用いた疎行列の格納形式による行列ベクトル積の評価
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
コンピュータアーキテクチャ 第 9 回.
より詳しく書けば 遅延時間が無視できない場合の TCPのスループットの低下について
コンピュータアーキテクチャ 第 5 回.
メモリ使用量の少ないGCR法の提案 東京大学理学部情報科学科 工藤 誠 東京大学情報基盤センター 黒田 久泰
コンピュータアーキテクチャ 第 5 回.
密行列固有値解法の最近の発展 (I) - Multiple Relatively Robust Representation アルゴリズム - 2004年11月26日 名古屋大学 計算理工学専攻 山本有作 日立製作所の山本有作です。 「~」について発表いたします。
キャッシュマシン向け三重対角化 アルゴリズムの性能予測方式
長方行列向け特異値分解の 浮動小数点コプロセッサによる 高速化
BSPモデルを用いた 最小スパニング木 情報論理工学研究室 02-1-47-134 小林洋亮.
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
分散メモリ型並列計算機上での行列演算の並列化
Ibaraki Univ. Dept of Electrical & Electronic Eng.
2008年 7月17日 応用数理工学特論 期末発表 鈴木綾華,程飛
Presentation transcript:

計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」 2004年7月6日 杉原研究室 山本有作 日立製作所の山本有作です。 「~」について発表いたします。

ハイパフォーマンスコンピューティング(HPC)技術とは 大規模な計算を高速かつ高精度に行うための技術 HPC技術の内容 高速・高精度な計算アルゴリズム 単体プロセッサ向けの性能最適化技術 並列化技術 ネットワーク・GRID技術 性能評価技術

PC向けプロセッサの クロック周波数の向上 周波数は10年間で約50倍も向上 たとえば AMD Opteronプロセッサ(1.6GHz)の場合,1秒間に最高で32億回の浮動小数点演算を実行可能   (3200MFLOPSのピーク性能) インテル社ホームページより

それでは,一般的な科学技術計算のプログラムでは,ピーク性能の何%程度を発揮できているか? 例: 連立一次方程式を解くためのガウスの消去法 do k=1, n do i=k+1, n a(i,k)=a(i,k)/a(k,k) end do do j=k+1, n a(i,j)=a(i,j)–a(i,k)*a(k,j) n=1000のとき,Opteronでの性能はピークの何%? 10% 30% 50% 80%

Opteronでの性能測定結果 n=1000 での性能は225MFLOPS(ピークの7%) n が大きくなるにつれ,性能は低下 Performance (MFLOPS) n

ピークよりはるか下の性能しか得られない原因は? 最大の要因は,データ転送速度のネック 計算を行うには,主メモリに格納されているデータをプロセッサ内の演算器に転送する必要あり。 演算器は十分速いが,データを供給する速度が追い付かない。 それでは,データ転送速度のネックを解消するにはどうすればよいか?   まず,プロセッサのアーキテクチャを知る必要がある。

典型的なマイクロプロセッサのメモリ階層 演算器に近い記憶装置ほど高速だが,容量は小さい。 演算器と主メモリの速度差は,年々大きくなっている。 データ転送速度 非常に大 レジスタ 演算器 8~128 ワード データ転送速度大 キャッシュ 数100Kバイト ~ 数Mバイト データ転送速度小 主メモリ 数100Mバイト ~ 数Gバイト 演算器に近い記憶装置ほど高速だが,容量は小さい。 演算器と主メモリの速度差は,年々大きくなっている。

性能最適化の原理 データがレジスタ中にあれば,演算器は最高速度で計算が可能   いったんデータをレジスタに持ってきたら,そのデータに対して必要な計算を集中して行うよう,計算の順序を変更する。   (データ参照の局所性を高める。) キャッシュと主メモリについても,同じ方針で最適化を行う。

性能最適化の具体例 もっとも単純なアルゴリズムである行列乗算 C=AB に対して最適化を行う。 最適化前のプログラム do i=1, n do j=1, n sum=0.0d0 do k=1, n c(i,j)=sum+a(i,k)*b(k,j) end do c(i,j)=sum 性能 = 77.7MFLOPS (Opteron 1.6GHz,n=500) ピーク性能の2.4%

レジスタの再利用性を高める最適化(レジスタブロッキング) iのループを2倍展開 →  162.8MFLOPS i, jの各ループを2倍展開 → 240.8MFLOPS iを4倍,jを2倍展開 → 324.7MFLOPS i, jの各ループを4倍展開 → 495.5MFLOPS

キャッシュの再利用性を高める最適化(キャッシュブロッキング) 行列を部分行列(1個がL×L)に分割 部分行列単位で乗算を行う。 Lは部分行列3個がキャッシュに格納できるサイズに取る。 演算量は同じだが,主メモリへのアクセス回数が約1/Lに減少する。 do I=1, n/L do J=1, n/L CIJ=0 do K=1, n/L CIJ=CIJ + AIKBKJ end do

キャッシュブロッキングの効果 Block size

これまでに説明した最適化手法の限界 レジスタブロッキングとキャッシュブロッキングの併用により,行列乗算の性能は800MFLOSまで向上できた。 しかし,ピーク性能に対しては,まだ25%に過ぎない。 その理由 実際のプロセッサでは,キャッシュが2階層になっている。 データ転送速度だけでなく,アクセス遅延時間も考慮した最適化が必要,など。 しかし,これ以上の高度な最適化を一般のプログラマが行うのは,負担が大きすぎる。

BLAS (Basic Linear Algebra Subprograms) 行列乗算 行列とベクトルの積 ベクトルの和,内積,など。 ATLAS(Automatically Tuned Linear Algebra Subprograms) 自分で自分を最適化するBLAS インストール時に,ループ展開のサイズやキャッシュブロッキングのサイズなどの最適値を自分で探し,設定。

ATLASの性能 n=1000のとき,ピーク性能の95%以上を達成している。

その他の行列乗算の高速化手法 Strassenのアルゴリズム A,B,Cをそれぞれ2×2に分割して乗算を行う。 乗算の回数を7/8に削減可能 Strassenのアルゴリズムで現れる小行列の乗算に再帰的にStrassenのアルゴリズムを使うことにより,計算量を更に削減可能

Strassenのアルゴリズム P1 = (A11+A22) (B11+B22) P2 = (A21+A22) B11 P3 = A11 (B12 – B22) P4 = A22 (B21 – B11) P5 = (A11+A12) B22 P6 = (A21 – A11) (B11+B12) P7 = (A12 – A22) (B21+B22) C11 = P1 + P4 – P5 + P7 C12 = P3 + P5 C21 = P2 + P4 C22 = P1 + P3 – P2 + P6

ガウスの消去法を行列乗算を用いて書き直してみる。 行列乗算の応用 行列乗算は,高度な最適化が可能であり,性能も高い。 他のアルゴリズムも行列乗算を用いて計算を行うように書き直すことができれば,BLAS や ATLAS を用いて高速化が可能 ガウスの消去法を行列乗算を用いて書き直してみる。

行列乗算を用いたガウスの消去法の性能 n=1000のとき,ピークの65%以上の性能を達成