応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング

Slides:



Advertisements
Similar presentations
大規模な三角 Toeplitz 線形方 程式の高速解法とその応用 ○ 安村 修一(法政大学 4 年) 李 磊(法政大学) 日本応用数理学会「行列・固有値の解法とその応用」研究部会 第6回研究会.
Advertisements

Computational Fluid Dynamics(CFD) 岡永 博夫
研究内容の紹介 電磁場の計算機シミュレーション 卒業研究 研究室の紹介
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
キャッシュ付PRAM上の 並列クィックソートと 並列マージソート
CPUについて HN:セシル.
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 原案:野田 担当:平野,吉田,泉,松本.
三重対角化アルゴリズムの性能評価 早戸拓也・廣田悠輔.
応用数理工学特論 - コンピュテーショナル・ファイナンスの基礎 -
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
Finger patternのブロック化による 陰的wavelet近似逆行列前処理の 高速化
プログラミング 平成24年10月23日 森田 彦.
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
AllReduce アルゴリズムによる QR 分解の精度について
このPowerPointファイルは、 情報処理演習用に作った フィクションです。
IT入門B2 (木曜日1限) 第一回 講義概要 2004年月9日30日.
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
情報数理Ⅱ 平成27年9月30日 森田 彦.
IT入門B2 ー 連立一次方程式 ー.
PCクラスタ上での 連立一次方程式の解の精度保証
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
高性能コンピューティング論2 第1回 ガイダンス
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
応用数理工学特論 第5回 計算理工学専攻 張研究室 山本有作.
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
正方行列向け特異値分解の CUDAによる高速化
Basic Calculus Ptolemy and the Dynamics of the Universe [2]
計算アルゴリズム 計算理工学専攻 張研究室 山本有作.
計算アルゴリズム 計算理工学専攻 張研究室 山本有作.
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
文献名 “Performance Tuning of a CFD Code on the Earth Simulator”
応用数学 計算理工学専攻 杉原研究室 山本有作.
Basic Calculus The Greeks Measure the Universe [4]
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
応用数理工学特論 第6回 計算理工学専攻 張研究室 山本有作.
応用数理工学特論 第9回 高速フーリエ変換の高性能化手法
応用数理工学特論 第9回 高速フーリエ変換とその並列化
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
Level-3 BLASに基づく二重対角化 アルゴリズムとその性能評価
最適化の方法 中田育男著 コンパイラの構成と最適化 朝倉書店, 1999年 第11章.
コンピュータの歴史 〜計算速度の進歩〜 1E15M009-3 伊藤佳樹 1E15M035-2 柴田将馬 1E15M061-1 花岡沙紀
米山研究室紹介 -システム制御工学研究室-
数値計算ゼミの進行に 関する提案 ~実りある春にするために           新しい形のゼミを求めて~ 清水慎吾、野村光春.
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(NlogN)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似法
導電性高分子材料の電子状態計算に現れる連立一次方程式に対する 並列直接解法の高性能化
変換されても変換されない頑固ベクトル どうしたら頑固になれるか 頑固なベクトルは何に使える?
TA (teaching assistant) :尾関 伸之
GPUを用いた疎行列の格納形式による行列ベクトル積の評価
ガイダンス 情報システム管理 ガイダンス 水野 嘉明 情報システム管理 1.
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
ガイダンス 電子計算機 電気工学科 山本昌志 1E
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(Nlog2N)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似
メモリ使用量の少ないGCR法の提案 東京大学理学部情報科学科 工藤 誠 東京大学情報基盤センター 黒田 久泰
実験計画法 Design of Experiments (DoE)
情報数理Ⅱ 平成28年9月21日 森田 彦.
密行列固有値解法の最近の発展 (I) - Multiple Relatively Robust Representation アルゴリズム - 2004年11月26日 名古屋大学 計算理工学専攻 山本有作 日立製作所の山本有作です。 「~」について発表いたします。
Mathematicaによる固有値計算の高速化 Eigenvalue calculation speed by Mathematica
キャッシュマシン向け三重対角化 アルゴリズムの性能予測方式
目次 はじめに 収束性理論解析 数値実験 まとめ 特異値計算のための dqds 法 シフトによる収束の加速
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
分散メモリ型並列計算機上での行列演算の並列化
応用数学 計算理工学専攻 張研究室 山本有作.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
2008年 7月17日 応用数理工学特論 期末発表 鈴木綾華,程飛
Presentation transcript:

応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング 応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング 2006年4月13日 計算理工学専攻 張研究室 山本有作 日立製作所の山本有作です。 「~」について発表いたします。

計算科学・工学における大規模シミュレーション 流体計算 電子状態計算 構造解析 電子状態計算 数万~数億の自由度を持つ超多自由度の系 解析のために多大な計算機パワーが必要

最新の計算機を効率的に使うには アーキテクチャの理解と最適化手法の習得 線形計算の高速化 最新の計算機がどんな原理で高速化を実現しているかを理解し,その高速性を引き出すための手法を学ぶことが必要 線形計算の高速化 科学技術計算では,計算の大部分が線形計算に帰着されることが多い。 その高速化は重要な課題 ファイナンス理論では,確率論をはじめとする数学が大きな役割を果たす。 更に,実際の問題に適用するには,数値計算が必須。 そのため,数学出身者が多い。 金融工学とも呼ばれる。

授業の目標 最新の計算機で大規模な計算を高速に行うための技法について学ぶ。 線形計算のための高速アルゴリズムについて学ぶ。 生協の書籍部の数学の棚に行くと,金融工学と呼ばれる本がたくさん並んでいる。 ブラック=ショールズという名前のついた本もたくさん見つかるはず。

授業の構成 高性能計算のための計算機アーキテクチャ RISCプロセッサにおける高性能計算の手法 並列計算機における高性能計算の手法 連立一次方程式の高性能解法(密行列の場合) 連立一次方程式の高性能解法(疎行列の場合) 固有値計算の高性能化手法 高速フーリエ変換の高性能化手法 前のスライドで述べたようなことを念頭におきながら,次のような解法を勉強する。

テーマ間の関連 高性能計算のための計算機アーキテクチャ RISCプロセッサにおける高性能計算の手法 並列計算機における 高性能計算の手法 連立一次方程式 (密行列) 連立一次方程式 (疎行列) 固有値計算 高速フーリエ 変換 ・関連図を示す。 ・実は必ずしも矢印の根元から先の方へ,授業が進むわけではない。親しみやすいトピックから先に話をしたり,あるいは,偏微分方程式のように,物理的な重要性がわかりやすい問題から先に話をして,それに必要な計算法として,連立一次方程式の話をすることもある。 ・ただし,各回の授業を聞くに当たっては,この図を思い出して,その回で勉強したことがどんなふうに使われるのかを頭に置いて欲しい。 グループ発表

授業の進め方(1) レポート グループ発表 3回出題予定 そのうち2回を選んで提出 提出は授業後2週間以内に3号館南305号室まで 最後の2回の授業を使って行う。 2~3人のグループで1つの発表を行う。 論文を読んでまとめるか,あるいは講義で勉強したことをもとに自分たちで数値実験を行った結果を発表。

授業の進め方(2) 授業ノート 各回の授業内容を担当者(2名)が記録して提出 TeX,テキスト形式,あるいは Word で 提出は授業後1週間以内に 山本のホームページに掲載予定 http://www.na.cse.nagoya-u.ac.jp/~yamamoto    /lectures.html ノート担当はレポート提出1回分とみなす この授業では,新しい試みとして,学生さんによる授業ノート作りをお願いしたい。 ノート担当は,ぜひ積極的に。 こちらで必要な補足などを行ってから,HPに載せる。

授業の進め方(3) 質問シート 2~3回の授業に1回程度,質問シートを提出してもらう。 授業最後の5分間を使い,授業内容でわからなかった点,疑問に思った点を紙に書いて提出 質問が多かった点について,次回の授業の最初に補足説明を行う。 その回の授業内容をどれだけ理解してもらったか,フィードバックが欲しい。

授業の進め方(4) スーパーコンピューティング実習との連携 この授業を受ける人は,同時に「計算科学フロンティア特別講義:並列計算特論」も受けることを勧めます。 これにより,名大のスーパーコンピュータが授業用に利用可能 その回の授業内容をどれだけ理解してもらったか,フィードバックが欲しい。

授業の進め方(5) 連絡先 3号館南305号室 山本まで あるいはメールで 3号館南305号室 山本まで あるいはメールで   yamamoto@na.cse.nagoya-u.ac.jp まで

参考書 J. Demmel: Applied Numerical Linear Algebra, SIAM, 1997. G. H. Golub & C. F. van Loan: Matrix Computations, 3rd Edition, Johns Hopkins Univ. Press, 1996. K. A. Gallivan et al.: Parallel Algorithms for Matrix Computations, SIAM, 1994. 今野先生の本は,本講義で扱うテーマの概要を知るには大変お勧め。 講義はOption Pricing の本に沿う。ただし,確率論の基礎についてもう少し簡単なところから述べる。

ハイパフォーマンスコンピューティング(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 sum=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%以上を達成している。