研究集会 「超大規模行列の数理的諸問題とその高速解法」 2007 年 3 月 7 日 完全パイプライン化シフト QR 法による 実対称三重対角行列の 固有値並列計算 宮田 考史 山本 有作 張 紹良 名古屋大学 大学院工学研究科 計算理工学専攻 目次 • はじめに • 固有値問題の数値解法 – シングルシフト QR 法 • QR 法の並列化 – マルチシフト法 – 遅延シフト法 – 提案法 • 性能差理論解析 • 数値実験 • まとめ 2 はじめに • 本研究で扱う問題 標準固有値問題 • 計算機を用いた固有値計算 - 行列を扱いやすい形に相似変換 - 固有値は不変 三重対角化 実対称行列 0 0 三重対角行列 対角化 0 0 対角行列 対角成分に固有値 3 シングルシフト QR 法 (1) シングルシフト QR 法 (2) シフトの更新 0 ・・・ 0 相似変換 0 0 固有値 非対角成分 4 シフトの更新 Wilkinson シフト 右下 2 × 2 の小行列の固有値 シフト = 右下対角成分に近い値 0 0 0 ・・・ 0 0 0 シフト 0 シフト 0 シフト = 固有値 固有値の近似度増加 収束を速めるには? 更新された新しいシフトを用いる 5 QR 法の並列化 • マルチシフト法 • 遅延シフト法 • 提案法 6 QR 法の並列化 シングルシフト QR 法の演算順序 左上から右下まで 逐次的に実行 (並列化困難) 複数のシフト QR 法の 1 反復に相当 マルチシフト法(並列化可能) 例: 2 シフト シフト 1 : 計算開始 プロセッサ 2 プロセッサ 1 シフト 2 : 計算開始 m m 右下 m × m 小行列の固有値 → m 個のシフト 7 マルチシフト法の問題点 (プロセッサの待ち時間) 計算過程 待ち時 間 同期箇所 PU 1 △ CPU 使用効率 (並列化不向き) PU 2 Time ① ① ② ③ ④ ② 待ち時 間 ③ ④ 8 並列処理の効率化 マルチシフト法 (Z.BAI and J.DEMMEL 1989) 待ち時 間 PU 1 △ CPU 使用効率 (並列化不向き) PU 2 Time ( Step i-1 ) ( Step i ) 古いシフト 遅延シフト法 (R. A. Van De Geijn 1993) PU 1 ・・・・ ・・・・ PU 2 ・・・・ ○ CPU 使用効率 △ 収束性低下 Time ( Step i-2 ) ( Step i-1 ) ( Step i ) 9 収束性の改善 遅延シフト法 (R. A. Van De Geijn 1993) PU 1 ・・・・ ・・・・ PU 2 ・・・・ ○ CPU 使用効率 △ 収束性低下 Time ( Step i-2 ) ( Step i-1 ) ( Step i ) シフト更新回数増大 (新しいシフト) 提案法 PU 1 ・・・・ ・・・・ PU 2 ・・・・ Time ( Step i-2 ) ( Step i-1 ) ( Step i ) ○ CPU 使用効率 ○(?) 収束性改善 克服△ シフト計算量増大 10 性能差理論解析 11 解析準備 • 実行時間のモデル化 – 行列サイズ,シフト数(= プロセッサ数) – 計算機環境固有のパラメータ – 平均反復回数(実測値) • マルチシフト法 • 遅延シフト法,提案法 予備的な実験 • 相対誤差 = |予測時間 – 実測時間| / (実測時間)×100 4 種類の計算機環境,8 種類の問題で比較 モデル時間は実測時間とほぼ一致(相対誤差 10 % 程度) 12 解析結果 性能差 = (従来法の実行時間) / (提案法の実行時間) 1. プロセッサ数増加に伴い,性能差増大 (提案法はより高速に成り得る) 性能差 1.6 名古屋大学 情報連携基盤センター (n = 200000) 1.4 2. 1.2 1.0 0 4 8 12 16 20 24 28 32 36 マルチシフト法と比較 遅延シフト法と比較 性能差は収束性にのみ依存 (計算機環境に依存しない) プロセッサ数 プロセッサ数 13 数値実験 14 数値実験 • 評価項目 - • 実験環境 - 名古屋大学情報連携基盤センター 並列計算機 Fujitsu PRIMEPOWER HPC2500 (SPARC64V 2.0GHz ,Memory 512 GB) - C 言語 + OpenMP(共有メモリ型並列計算機に実装) 0 - 収束判定条件 0 マシンイプシロン 三重対角行列 15 テスト問題 性能差 1 = (マルチシフト法の実行時間) / (提案法の実行時間) 性能差 2 = (遅延シフト法の実行時間) / (提案法の実行時間) 従来法と同程度 提案法が優勢 16 実験結果 25 1.8 1.05 倍 相対反復演算量 20 高速化率 従来法と同程度 ( RANDOM ) 15 10 5 1 割減 1.6 1.4 1.2 1.0 0 0 4 8 12 16 20 24 28 32 36 プロセッサ数 マルチシフト法 遅延シフト法 提案法 0 4 8 12 16 20 24 28 32 36 シフト数 ( = プロセッサ数) • 提案法について – 高速化率 : 遅延シフト法と同程度 – 反復回数 : 遅延シフト法と同程度 17 実験結果 25 相対反復演算量 高速化率 1.8 1.04 倍 20 従来法と同程度 ( PARSEC/CO ) 15 10 5 1.6 1 割減 1.4 1.2 1.0 0 0 4 8 12 16 20 24 28 32 36 プロセッサ数 マルチシフト法 遅延シフト法 提案法 0 4 8 12 16 20 24 28 32 36 シフト数 ( = プロセッサ数) • 提案法について – 高速化率 : 遅延シフト法と同程度 – 反復回数 : 遅延シフト法と同程度 18 実験結果 1.24 倍 25 2 割減 1.8 相対反復演算量 20 高速化率 提案法が優勢 ( SINH-UPPER ) 15 10 5 1.6 1.4 1.2 1.0 0 0 4 8 12 16 20 24 28 32 36 プロセッサ数 マルチシフト法 遅延シフト法 提案法 0 4 8 12 16 20 24 28 32 36 シフト数 ( = プロセッサ数) • 提案法について – 高速化率 : 遅延シフト法の 1.2 倍 – 反復回数 : 遅延シフト法の 2 割減 19 実験結果 1.66 倍 25 3 割減 1.8 相対反復演算量 20 高速化率 提案法が優勢 ( TRIDIAG(-1,2,-1) ) 15 10 5 1.6 1.4 1.2 1.0 0 0 4 8 12 16 20 24 28 32 36 プロセッサ数 マルチシフト法 遅延シフト法 提案法 0 4 8 12 16 20 24 28 32 36 シフト数 ( = プロセッサ数) • 提案法について – 高速化率 : 遅延シフト法の 1.7 倍 – 反復回数 : 遅延シフト法の 3 割減 20 まとめ • • 本研究では QR 法の並列化を行った. 従来法に対して 1. マルチシフト法に比べて,多くのプロセッサを用いるほど, 提案法はより高速となった.(並列処理の効率化) 2. 遅延シフト法に比べて,提案法は良い収束性を示した. そのため,遅延シフト法の性能を上回った. 提案法は並列計算機向けの 有力な固有値解法となる可能性がある. 今後の課題 • 収束性の理論解析 • 分散型への実装 21
© Copyright 2024 ExpyDoc