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

19
応応応応応応応応 応応応応応 応応応応応応応応応応応応応応応応応応 応8応 応応応応応 応応応応応応応 応応応応

Upload: evangelia-chloe

Post on 03-Jan-2016

31 views

Category:

Documents


5 download

DESCRIPTION

応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング. 第 8 回 名古屋大学 計算理工学専攻 山本有作. 1 .  はじめに. 本研究で対象とする問題 標準固有値問題  A x = l x A : n × n 非対称密行列 応用分野 MHD 化学工学 量子化学 流体力学 Cf. Bai and Demmel: A test matrix collection for non-Hermitian eigenvalue problems. 高い信頼性. 非対称行列の固有値計算の流れ. 計算内容. 計算手法. 密行列 A. - PowerPoint PPT Presentation

TRANSCRIPT

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

応用数理工学特論

線形計算とハイパフォーマンスコンピューティング

第 8 回

名古屋大学 計算理工学専攻山本有作

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

1 .  はじめに

• 本研究で対象とする問題– 標準固有値問題  Ax = x

• A : n×n 非対称密行列

• 応用分野– MHD

– 化学工学– 量子化学– 流体力学

• Cf. Bai and Demmel: A test matrix collection for non-Hermitian eigenvalue problems.

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

非対称行列の固有値計算の流れ

QTAQ = H(Q: 直交行列 )

Hui =i ui

vi = Q ui

ヘッセンベルグ化

固有値の計算

逆変換

ヘッセンベルグ行列 H

A の固有値 {i }

A の固有ベクトル {vi }

密行列 A 計算内容 計算手法

ハウスホルダー法

QR 法分割統治法

逆変換

固有ベクトルの計算

H の固有 ベクトル {ui

}

高い信頼性

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

各部分の実行時間

• 全固有値を求める場合の演算量– ヘッセンベルグ 化:  (10/3) n3

– QR 法:   10n3 (経験値)

– 演算量(時間)の大部分を QR 法が占める。– QR 法の高速化が必要

0

5

10

15

20

25

30

35

40

45

OLM10

00

TUB1

000

RDB1

250

TOLS

2000

PDE2

961

MHD32

00B

QR

Hessenberg reduction

Execution time (min)

Origin2000 1PU ( R12000 , 400MHz )上での実行時間K. Braman et al: “The Multishift QR Algorithm I” より抜粋Hessenberg 化の時間は推定値

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

QR 法の特徴と高性能計算

QR 法の特徴 高性能計算の条件

•計算の逐次性  ( bulge-chasing 型演算)

•低いデータ再利用性

•計算の並列性

•高いデータ再利用性  (キャッシュの有効利用)

オリジナルの QR 法のままでは高性能化が困難高性能計算の条件を満たす新しいアルゴリズムが必要

マルチシフト QR 法

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

QR 法の基礎

• アルゴリズム( Francis, 1961 & Kublanovskaya, 1961 )– 行列 A0 から始めて次のように QR 分解と相似変換を繰り返す。

• A0 = Q1R1

• A1 = R1Q1 (= Q1–1A0 Q1 )

• A1 = Q2R2

• A2 = R2Q2 (= Q2–1A1 Q2 = Q2

–1Q1–1A0 Q1Q2 )

• 収束定理– 適当な条件の下で, Ak は(ブロック)上三角行列に収束– A0 の固有値を絶対値の大きい順に 1, 2, … , n とすると,対角要素

aij は i に1次収束– 非対角要素 aij ( j < i )は収束率 ij ≡ |i| / |j| で 0 に1次収束

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

ダブルシフト QR 法

• シフトの導入– Ak から固有値 i の近似値 s を引いた行列に対して QR 法を適用

• Ak – s I = Qk Rk

• Ak+1 = Rk Qk + s I (= Qk–1Ak Qk )

                ij ≡ |i – s| / |j – s| 0 ≒ より収束が加速

• ダブルシフト QR 法– 共役複素数の固有値ペアに対し,シフト s, s による 2 反復をまとめて

行う• (Ak – s I)(Ak – s I) = Qk Rk

• Ak+2 = Qk–1Ak Qk

– シフトは右下隅の 2×2 行列の固有値に取る    → 局所的に 2 次収束– 複素数の固有値を持つ場合でも,実数演算だけで QR 法を実行可能

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

Hessenberg 形と Implicit Q 定理

• Hessenberg 形の利用– 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 列目だけが与えられれば(実質的に)一意に定まる

0

Hessenberg 形aij = 0 if i > j+1

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

Implicit shift QR 法

• 1 ステップの計算

• (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 ステップと等価

0

0

0

0

0

H0 AkH0

Ak

Ak+1

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

陰的ダブルシフト QR 法の演算パターン

• バルジ追跡における演算– 3×3 のハウスホルダー変換を左右からかけることにより, bulge

を 1 つ右下に動かす

• 演算の特徴– 並列粒度は O(n)

• 並列アルゴリズム:  R. Suda et al. ( 1999 ), G. Henry et al. (2002)

– QR 法の 1 ステップで,各行列要素は 3 回のみ更新

  データ再利用性が低く,キャッシュの有効利用が困難

0 0 0

左から Hl を乗算 右から Hl を乗算

0 にしたい要素 更新される要素

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

2 .  マルチシフト QR 法

• 原理 ( Bai & Demmel, 1989 )– Ak の右下の m×m 行列の固有値 s1 , s2 , … , sm をシフトとし

て用い, QR 法の m ステップを一度に実行

• (Ak – smI) ・・・ (Ak – s2I)(Ak – s1I) = Qk Rk

• Ak+m = Qk–1Ak Qk

• シフト数増加の効果– 並列粒度は O(m) 倍に増加– 行列の各要素に対する更新回数も O(m) 倍に増加

– データ再利用性の向上により,キャッシュの有効利用が可能

  ( WY representation を用いた BLAS3 化)

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

マルチシフト QR 法におけるバルジ追跡

• 方式1: 大きなバルジ 1個を追跡 ( Bai & Demmel, 1989 )

– シフト s1, s2, …, sm を含む (m+1)×(m+1) のバルジを導入

– (m+1)×(m+1) のハウスホルダー変換を用いてこれを追跡

• 方式2: 小さなバルジ複数個を追跡 ( Braman et al., 2003 )

– シフトを 2 つずつ組にし, 3×3 の小さなバルジ m/2 個を導入

– ダブルシフト QR 法と同様にして,これらを追跡– バルジ同士は 3 行離れていれば,干渉なしに計算が可能

• 密に詰めることで,データ参照の局所性を向上– 得られる行列は,無限精度演算では方式1と同じ

0

0

m = 6 の場合

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

方式1と方式2の収束性比較

• シフトの数と総演算量との関係– DHSEQR : 方式1( LAPACK )– TTQR :方式2

有限精度演算では,方式2が有利 ( Cf. Watkins による理論的解析)以下では方式2について考える

K. Braman et al.: “The Multishift QR Algorithm I” (2002) より引用

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

• 更新処理の分割– m/2 個のバルジをそれぞれ r 行追跡する際,  まず対角ブロックのみを更新– 非対角ブロックは,更新に使ったハウスホル

ダー変換を 1個の行列に蓄積し,後でまとめて更新

  非対角ブロックの更新で レベル 3 BLAS が使用可能

• r の決め方– 演算量の点から, r ~ 3m とするのが最適– このとき,演算量は方式1の約 2 倍  (非ゼロ構造を利用した場合)

レベル 3 BLAS の利用

0

バルジ( 3×3 )最初に更新

まとめて BLAS3 で更新

蓄積されたハウスホルダー変換の非ゼロ構造

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

マルチシフト QR 法の性能

• 流体力学の問題に対する計算時間の例– PowerPC G5 2.0GHz ( 1CPU )– 行列は金田研究室 水野氏提供

0

200

400

600

800

1000

1200

1400

1600

8 (DHSEQR) 8 (HQR_M)

QR法

Hessenberg 化

行列生成

0

5000

10000

15000

20000

25000

30000

35000

40000

45000

11 (DHSEQR) 11 (HQR_M)

QR法

Hessenberg 化

行列生成

N=3645 N=11232

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

• シフト数 m に関するトレードオフ– m を大きくすると, BLAS3 部分の性能は向

上– しかし,シフトの計算量は増加( O(m3) )– 最適な m の値は計算機と問題サイズに依存

• r ( 1 回のバルジ追跡行数)の最適化– 演算量最小化のためには r ~ 3m が最適– BLAS3 の実行時間は必ずしも演算量に比例

しないため,実行時間の最適値はこれとは異なる

     m , r に対する自動チューニングの必要性

3 .  シフト数の最適化

n m の最適値

1000~ 1999

60

2000~ 2499

116

2500~ 3999

150

4000~ 180

実験的に求めた m の最適値( Origin2000 上, Braman et al.より引用)

そこで,性能予測モデルを用いてシフト数 m の自動最適化を行うことを考える

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

PowerPC G5 上での予測結果( 1CPU )

• m を変えたときの相対実行時間(最小値を 1 に規格化)

• モデルは m を変えたときの相対実行時間の変化を定性的に再現   → シフト数の自動最適化に使える可能性あり• ただし,絶対時間では 20~ 40% の誤差

相対実行時間 相対実行時間

予測結果 実測結果

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1000 2000 4000 8000

m=30m=60m=90m=120

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1000 2000 4000 8000

m=30m=60m=90m=120

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

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1000 2000 4000 8000

m=30m=60m=90m=120

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

1000 2000 4000 8000

m=30m=60m=90m=120

PowerPC G5 上での予測結果( 2CPU )

• m を変えたときの相対実行時間(最小値を 1 に規格化)

• モデルは m を変えたときの相対実行時間の変化を定性的に再現

• 絶対時間の誤差は 1CPU の場合と同程度

相対実行時間 相対実行時間

予測結果 実測結果

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

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1000 2000 4000 8000

m=30m=60m=90m=120

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1000 2000 4000 8000

m=30m=60m=90m=120

Opteron 上での予測結果( 4CPU )

• m を変えたときの相対実行時間(最小値を 1 に規格化)

• モデルは m を変えたときの相対実行時間の変化を定性的に再現

• 絶対時間の誤差は PowerPC G5 の場合と同程度

相対実行時間 相対実行時間

予測結果 実測結果