本年度はブロックヤコビ法の理論的解析と実装手法の確立に取り組んだ。固有値分解のためのヤコビ法についてはこれまでの研究において一定の成果を上げているため、とくに誤差解析について新しい観点から研究を進めるため、特異値分解のためのヤコビ法について研究を進めた。 まず誤差解析について研究を進めた結果、特異値計算向けブロックヤコビ法が持つ誤差の構造を持った上限が得られた。この結果は、対称な行列積DSYRKを内部で使用するブロック化手法を用いた場合においても収束性に影響を与える誤差が小さくなるという完全な証明にはなっていないが、十分期待の持てる結果であった。一方でこの結果を得るには部分対角化のためにはより高速な他の手法ではなくヤコビ法を用いなければならないということがわかった。 また収束性の解析においては整列性との関連について解明できなかったが、古典的並列オーダリングという別の並列計算向けオーダリングにおいて、よりシャープな上限が得られた。整列性との関係が解明されなかったことは残念だが、古典的並列オーダリングは収束の速さにおいて整列性を持ったオーダリングと同等以上の性能を持つため、大目標である、大域収束性を持ちかつ収束の速い手法の開発には貢献できた。 この結果を基に特異値分解向けブロックヤコビ法の大規模並列環境向け実装の確立に取り組んだ。申請者は演算量の増加を許す代わりに並列計算において問題となる通信回数を削減するAllReduce型アルゴリズムを開発し、高い並列性能を得た。 一方、GPUについては、ヤコビ法を用いた部分対角化のGPU向け実装に取り組んだが、CPUとGPUの差異が大きく影響し、GPUの高い性能を活用できるまでには至らなかった。
|