密行列固有値解法の最近の発展(II) ー マルチシフトQR法 ー

Slides:



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

大規模な三角 Toeplitz 線形方 程式の高速解法とその応用 ○ 安村 修一(法政大学 4 年) 李 磊(法政大学) 日本応用数理学会「行列・固有値の解法とその応用」研究部会 第6回研究会.
『わかりやすいパターン認 識』 第 5 章 特徴の評価とベイズ誤り確率 5.4 ベイズ誤り確率と最近傍決定則 発表日: 5 月 23 日(金) 発表者:時田 陽一.
Level-3 BLASに基づく特異値分解 アルゴリズムのSMP上での性能
データ解析
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
※ 対称密行列の固有値分解は特異値分解と共通点が多い
Fill-in LevelつきIC分解による 前処理について
一般化Bi-CGSTAB(s, L) (=一般化IDR(s, L))
A Q R QR分解とは? → × ◆QR分解 QTQ = I (単位行列) ◆応用例 ◆主な計算方法 n m 今回はこの方法に注目
三重対角化アルゴリズムの性能評価 早戸拓也・廣田悠輔.
研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史  山本 有作  張 紹良   名古屋大学 大学院工学研究科 計算理工学専攻.
Finger patternのブロック化による 陰的wavelet近似逆行列前処理の 高速化
AllReduce アルゴリズムによる QR 分解の精度について
2. 共有メモリ型並列計算機での特異値分解の高速化
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
IT入門B2 ー 連立一次方程式 ー.
      線形写像  線形写像 U,V:R上のベクトル空間 T:UからVへの写像 (1)T(u+v)=T(u)+T(v)  (u,v∈U),
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
理学部情報科学科 金田研究室 指導教官 金田 康正 工藤 誠
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
(ラプラス変換の復習) 教科書には相当する章はない
応用数理工学特論 第5回 計算理工学専攻 張研究室 山本有作.
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
正方行列向け特異値分解の CUDAによる高速化
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
文献名 “Performance Tuning of a CFD Code on the Earth Simulator”
高次元データの解析 -平均ベクトルに関する検定統計量の 漸近分布に対する共分散構造の影響-
非対称行列向けマルチシフトQR法の 性能予測方式
k 個のミスマッチを許した点集合マッチング・アルゴリズム
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
応用数理工学特論 第6回 計算理工学専攻 張研究室 山本有作.
高速剰余算アルゴリズムとそのハードウェア実装についての研究
Level-3 BLASに基づく二重対角化 アルゴリズムとその性能評価
正規分布における ベーテ近似の解析解と数値解 東京工業大学総合理工学研究科 知能システム科学専攻 渡辺研究室    西山 悠, 渡辺澄夫.
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(NlogN)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似法
6. ラプラス変換.
「R入門」  5.7 行列に対する諸機能  10月23日 (木) 発表者 大城亜里沙.
トーリックイデアルの グレブナ基底を求める アルゴリズム – F4およびF5 –
システム制御基礎論 システム工学科2年後期.
変換されても変換されない頑固ベクトル どうしたら頑固になれるか 頑固なベクトルは何に使える?
AIを用いたドローンの 新たな姿勢制御方法に関する研究
パターン認識特論 担当:和田 俊和 部屋 A513 主成分分析
背景 課題 目的 手法 作業 期待 成果 有限体積法による汎用CFDにおける 流体構造連成解析ソルバーの計算効率の検証
資料 線型変換のイメージ 固有値、固有ベクトル 平賀譲(209研究室) 資料
4. システムの安定性.
わかりやすいパターン認識 第7章:部分空間法  7.1 部分空間法の基本  7.2 CLAFIC法                  6月13日(金)                  大城 亜里沙.
問題作成、解説担当:中島 副担当:坪坂、松本
B03 量子論理回路の 最適化に関する研究 西野哲朗,垂井淳,太田和夫,國廣昇 電気通信大学 情報通信工学科.
「ICAによる顔画像特徴量抽出とSVMを用いた表情認識」
行列式 方程式の解 Cramerの公式 余因数展開.
高精細計算を実現するAMR法フレームワークの高度化 研究背景と研究目的 複数GPU間での袖領域の交換と効率化
Max Cut and the Smallest Eigenvalue 論文紹介
原子核物理学 第7講 殻模型.
ガウス分布における ベーテ近似の理論解析 東京工業大学総合理工学研究科 知能システム科学専攻 渡辺研究室    西山 悠, 渡辺澄夫.
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(Nlog2N)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似
メモリ使用量の少ないGCR法の提案 東京大学理学部情報科学科 工藤 誠 東京大学情報基盤センター 黒田 久泰
半正定値計画問題(SDP)の 工学的応用について
行列 一次変換,とくに直交変換.
制約付き非負行列因子分解を用いた 音声特徴抽出の検討
密行列固有値解法の最近の発展 (I) - Multiple Relatively Robust Representation アルゴリズム - 2004年11月26日 名古屋大学 計算理工学専攻 山本有作 日立製作所の山本有作です。 「~」について発表いたします。
キャッシュマシン向け三重対角化 アルゴリズムの性能予測方式
長方行列向け特異値分解の 浮動小数点コプロセッサによる 高速化
目次 はじめに 収束性理論解析 数値実験 まとめ 特異値計算のための dqds 法 シフトによる収束の加速
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
分散メモリ型並列計算機上での行列演算の並列化
2008年 7月17日 応用数理工学特論 期末発表 鈴木綾華,程飛
Presentation transcript:

密行列固有値解法の最近の発展(II) ー マルチシフトQR法 ー 名古屋大学 計算理工学専攻 山本有作 2006年1月28日 LA研究会 日立製作所の山本有作です。 「~」について発表いたします。

目次 1. はじめに 2. 非対称行列向けのマルチシフトQR法 3. 対称行列向けのマルチシフトQR法 1. はじめに 2. 非対称行列向けのマルチシフトQR法 3. 対称行列向けのマルチシフトQR法 本発表では,はじめに,研究の背景を述べてから,スパースソルバの概要,並列化手法,そして本研究で工夫した点の一つであるRISCプロセッサ向けの最適化についてご説明します。最後に,並列計算機SR2201上での性能評価とまとめを述べます。

1. はじめに 本研究で対象とする問題 応用分野 標準固有値問題 Ax = lx A : n×n 密行列(実対称または実非対称) 対称行列 1. はじめに 本研究で対象とする問題 標準固有値問題 Ax = lx A : n×n 密行列(実対称または実非対称) 応用分野 対称行列 分子計算(分子軌道法,FMO-MO法) 統計計算 非対称行列 MHD,化学工学,量子化学,制御理論 Cf. Bai and Demmel: A test matrix collection for non-Hermitian eigenvalue problems. ここでは特に,Aが実対称またはエルミートの密行列の場合を考える。

固有値計算の流れ 密行列 A 計算内容 計算手法 QTAQ = T (Q: 直交行列) ハウスホルダー法 固有値の計算 QR法 分割統治法 三重対角化/Hessenberg化 三重対角行列 T / Hessenberg行列 H 固有値の計算 高い信頼性 QR法 分割統治法 MR3アルゴリズム I-SVDアルゴリズム A の固有値 {li } 固有ベクトルの計算 Tui =li ui 密行列Aをまず三重対角行列Tに相似変換してからTの固有値・固有ベクトルを求めるのが最も一般的な計算法。 三重対角化には,後に述べるハウスホルダー法を使う場合がほとんど。 三重対角行列の固有値・固有ベクトルの計算には,色々なアルゴリズムがある。 T or Hの固有ベクトル {ui } 逆変換 vi = Q ui 逆変換 Aの固有ベクトル {vi }

各部分の実行時間(非対称行列) 全固有値を求める場合の演算量 Hessenberg 化: (10/3) n3 QR法: 10n3 (経験値) Execution time (min) Origin2000 1PU (R12000,400MHz)上での実行時間 K. Braman et al: “The Multishift QR Algorithm I” より抜粋 Hessenberg 化の時間は推定値

各部分の実行時間(対称行列) 全固有値を求める場合の演算量 三重対角化: (4/3) n3 QR法: O(n2) しかし,三重対角化部分は並列化が容易 QR法も並列化できることが望ましい n = 100,000の行列の固有値計算 5555 min. 8 min. 三重 対角化 10 min. 10 min. QR法 QR法は PrimePower HPC2500 上での実測値 三重対角化の時間は推定値 (1CPUでの性能4GFLOPS,並列化効率70%と仮定) 1CPU 三重対角化部分 のみ1000CPU

QR法の特徴と高性能計算 QR法の特徴 高性能計算の条件 計算の逐次性 (bulge-chasing 型演算) 計算の並列性 低いデータ再利用性 高いデータ再利用性   (キャッシュの有効利用) オリジナルのQR法のままでは高性能化が困難 高性能計算の条件を満たす新しいアルゴリズムが必要 マルチシフトQR法

2. 非対称行列向けのマルチシフトQR法 QR法(Francis, 1961 & Kublanovskaya, 1961) QR法の収束 A1 = R1Q1 (= Q1–1A0 Q1 ) A1 = Q2R2 A2 = R2Q2 (= Q2–1A1 Q2 = Q2–1Q1–1A0 Q1Q2 ) QR法の収束 適当な条件の下で,Ak は(ブロック)上三角行列に収束 A0 の固有値を絶対値の大きい順に l1, l2, … , ln とすると,対角要素 aij は li に1次収束 非対角要素 aij (j < i)は収束率 rij ≡ |li| / |lj| で 0 に1次収束

ダブルシフトQR法 シフトの導入 ダブルシフトQR法 Ak から固有値 li の近似値 s を引いた行列に対して QR 法を適用 Ak – s I = Qk Rk Ak+1 = Rk Qk + s I (= Qk–1Ak Qk )         rij ≡ |li – s| / |lj – s| ≒ 0 より収束が加速 ダブルシフトQR法 共役複素数の固有値ペアに対し,シフト s, s による2反復をまとめて行う (Ak – s I)(Ak – s I) = Qk Rk Ak+2 = Qk–1Ak Qk シフトは右下隅の 2×2 行列の固有値に取る     → 局所的に2次収束 複素数の固有値を持つ場合でも,実数演算だけで QR 法を実行可能

Hessenberg 形と Implicit Q 定理 Ak が Hessenberg 形のとき, QR法の1ステップは O(n2) で実行可能 Ak+1 も Hessenberg 形 Implicit Q 定理の利用により,QR 分解を陽に行う   ことなく1ステップの計算を実行可能      A0 を Hessenberg 形に相似変換してからQR法を適用 Implicit Q 定理 U,V が直交行列で,G = UtAU, H = VtAV が共に既約な Hessenberg 行列であるとする。 このとき,もし U と V の第1列が等しいならば,±1 を要素に持つ対角行列 D が存在して,V = UD,H = DGD が成り立つ すなわち,行列 A を既約な Hessenberg 行列に相似変換する直交行列は,第1列目だけが与えられれば(実質的に)一意に定まる Hessenberg 形 aij = 0 if i > j+1

Implicit shift QR法 1ステップの計算 この変換の性質 ある直交行列 H による相似変換 (Ak – s2I)(Ak – s1I) の第1列を e1の定数倍にするハウスホル   ダー変換H0 を求める Ak’ = H0tAk H0 直交行列による相似変換を繰り返すことにより, Ak’ を再び   Hessenberg 行列に変形する(bulge-chasing) この変換の性質 ある直交行列 H による相似変換 H の第1列は,Qk の第1列に等しい 上記第3のステップは第2行・第2列以降のみに影響 H は Ak を Hessenberg 形に変換 Implicit Q 定理より,Ak+1 = H tAk H はQR法の1ステップと等価 Ak H0 AkH0 Ak+1

演算パターンとその特徴 Bulge-chasing の演算パターン 演算パターンの特徴 並列性は O(n) 並列アルゴリズム: R. Suda et al.(1999),G. Henry et al. (2002) QR法の1ステップで,各行列要素は3回のみ更新   データ再利用性が低く,キャッシュの有効利用が困難 左から Hl を乗算 右から Hl を乗算 0にしたい要素 更新される要素

マルチシフトQR法 基本的なアイディア(Bai & Demmel, 1989) m 個のシフトに対するQR法のステップを同時に行う (Ak – smI) ・・・ (Ak – s2I)(Ak – s1I) = Qk Rk Ak+m = Qk–1Ak Qk シフト s1, s2, …, sm は,の右下隅の m×m 行列の固有値に取る マルチシフトQR法の収束(Watkins & Elsner, 1991) 上記のようにシフトを取ったとき,マルチシフトQR法は局所的に2次収束 特に,Q1, Qm+1, Q2m+1, … , Qk の積を Q(k) とするとき,Q(k) の最後の m 列の張る部分空間は,A1のある不変部分空間に2次収束する

マルチシフトQR法の演算パターン 1ステップの計算(implicit 型) 演算パターンの特徴 並列粒度は m/2 倍増加 (Ak – s2I) ・・・ (Ak – s2I)(Ak – s1I) の第1列を e1の定数倍にするハウスホルダー変換H0 を求める Ak’ = H0tAk H0 直交行列による相似変換を繰り返すことにより, Ak’ を再びHessenberg 行列に変形する(bulge-chasing) 演算パターンの特徴 並列粒度は m/2 倍増加 QR法の1ステップで,各行列要素は m+1回更新 データ再利用性の向上により,キャッシュの有効利用が可能   (WY representation を用いた BLAS3化)

K. Braman et al.: “The Multishift QR Algorithm I” (2002) より引用 一方,BLAS3 で性能を出すには m を数十程度に取ることが必要     このマルチシフトQR法では,計算機性能を引き出せない K. Braman et al.: “The Multishift QR Algorithm I” (2002) より引用 収束性悪化の原因は?

収束性悪化の解析 シフトの伝播に関する理論的解析(Watkins, 1996) 実験からの考察 bulge を形作る (m+1)×(m+1) 行列を Bl とするとき,シフト   s1, s2, …, sm は,行列束 (Bk, N) の m 個の有限固有値 ただし N は固有値 0 の m+1 次ジョルダン細胞 実験からの考察 (Bl, N) の固有値は,m が大きいとき,摂動に対して極めて敏感になる Bl m = 4 の場合 Bulge chasing の過程でシフトが (Bk, N) の固有値として伝わる際に,丸め誤差による摂動でシフトが劣化し,2次収束を阻害するのではないか?

多数の小さい bulge を使ったマルチシフトQR法 基本的なアイディア(K. Braman et al., 2002) 従来法と同様にしてシフト s1, s2, …, sm を計算 シフトを2つずつ組にしてダブルシフトQR法を m/2 回実行 この結果得られる Ak+1 は,無限精度演算では従来法と同じ m/2 個の bulge をできるだけ密に詰めて chasing を行うことで,データ参照の局所性を向上 3行離れていれば,互いの干渉なしに計算が可能 m = 6 の場合 大きな bulge を避けることで,丸め誤差の影響を抑えつつデータの再利用性を高め,性能を向上

K. Braman et al.: “The Multishift QR Algorithm I” (2002) より引用 収束性に関する実験結果 シフトの数と総演算量との関係 DHSEQR: 従来のマルチシフトQR法(LAPACK) TTQR: 新手法 K. Braman et al.: “The Multishift QR Algorithm I” (2002) より引用 新手法では,m を数十まで増やしても収束性が低下しない

Level-3 BLAS の利用 更新処理の分割 r の決め方 m/2 個の bulge をそれぞれ r 行 chasing する際,   まず対角ブロックのみを更新 非対角ブロックは,更新に使ったハウスホルダー変換を1個の行列に蓄積し,後でまとめて更新   非対角ブロックの更新で level-3 BLAS が使用可能 r の決め方 演算量の点から,r ~ 3m とするのが最適 このとき,演算量は従来のマルチシフトQR法の約2倍(非ゼロ構造を利用した場合) Bulge(3×3) 最初に更新 まとめてBLAS3で更新 蓄積されたハウスホルダー変換の非ゼロ構造

従来のマルチシフトQR法との組み合わせ 基本的なアイディア(Kressner, 2005) 3×3の bulge を m/2 個同時に chasing する代わりに,(q+1)×(q+1) の bulge を m/q 個同時にchasing する q ~ 6 であれば,収束性は悪化しない       データ再利用性をさらに向上 Bulge((q+1)×(q+1)) 最初に更新 まとめてBLAS3で更新

D. Kressner: “On the Use of Larger Bulges in the QR Algorithm”より引用 各手法の性能 比較する対象の手法 DHSEQR: 従来のマルチシフトQR法(LAPACK) MTTQR: 多数の小さいシフトを使ったマルチシフトQR法          (ns: bulge 1個あたりのシフト数) D. Kressner: “On the Use of Larger Bulges in the QR Algorithm”より引用 ほとんどの場合,ns = 4 or 6 とした新手法が最高速

共有メモリ向けの並列化手法 Level-3 BLAS 内部での並列化 より効率的な並列化 非対角ブロックの更新において,次の対角ブロックの更新に必要な部分のみを先に更新   並列化困難な対角ブロックの更新を,非対角ブロックの更新と並列に実行可能 次の対角ブロックの 更新で必要 Bulge(3×3) 最初に更新 まとめてBLAS3で更新

シフト数の最適決定 m の最適化 r (1回の bulge chasing の行数)の最適化 m,r に対する自動チューニングの必要性 演算量最小化のためには r ~ 3m が最適 BLAS3 の実行時間は必ずしも演算量に比例しないため,実行時間の最適値はこれとは異なる     m,r に対する自動チューニングの必要性 n m の最適値 1000~1999 60 2000~2499 116 2500~3999 150 4000~ 180 実験的に求めた m の最適値 (Origin2000上,Braman et al. より引用)