今年度は,共役勾配法のためのMILU(0)前処理の理論的解析と対称固有値問題の解法の高性能実装の2つのテーマについて研究を実施した。
(1) 本課題では,非直交変換に基づく行列アルゴリズムの一つの例として,共役勾配法のためのMILU(0)前処理(修正不完全LU分解前処理)の研究を行ってきた。特に,ブロック赤黒順序付け手法を用いた同前処理の並列化をテーマとし,昨年度までに,アルゴリズムの開発と安定性解析,およびGPU上での並列化とその最適化を行ってきた。今年度は,提案する並列アルゴリズムの収束加速効果に関する理論的解析を行った。提案手法は,並列度が数千の場合でも,逐次版のMILU(0)前処理にあまり劣らない収束加速効果を持つことが実験的に示されていたが,これを説明できる理論はこれまでに存在しなかった。今年度の研究では,2次元ポアソン方程式の離散化から得られる行列を例題として前処理後の行列の詳細な固有値解析を行い,格子点数がN×Nの場合に,前処理行列のN^2個の固有値はO(N)個を除いて逐次版の前処理の場合とほぼ同様な分布を持つこと,残りのO(N)個の固有値は,共役勾配法の高々N回の反復で取り除くことができ,それ以降の反復には影響を与えないことを示した。これにより,提案手法の収束加速効果に関する理論的基礎を与えた。
(2) もう一つのテーマとして,ブロックヤコビ法に基づく並列固有値解法の高性能実装を行った。スーパーコンピュータ「富岳」の1ノード(48コア)をターゲットとし,本研究で提案した収束加速のための組合せ的前処理を用いることで,数千元程度の行列に対し,従来のブロックヤコビ法に比べて高速に解が得られることを示した。また,実行時間の詳細な分析を行い,行列の転置コピーが実行時間の多くを占めること,その効率化により更に2倍程度の高速化が可能であることを明らかにした。
|