高速・高精度シミュレーションのための数値計算ライブラリを整備
「京」、ポスト「京」と変化していく計算機環境の中でハードウェア能力を最大限に発揮しつつ高効率性と精度を達成するには、計算機科学的・数学的に高度化された数値計算ライブラリの利用が必須となる。当研究チームは、高機能な数値計算ソフトウェアライブラリの研究開発を推進している。①連立一次方程式用ソフト、②高性能固有値ソルバEigenEXA、③ 3 次元高速フーリエ変換ソフトKMATH FFT3D、④長周期乱数生成ルーチンKMATH_RANDOMなど、大規模化、高並列、高性能、高精度、耐障害性という観点から、数値計算アルゴリズムの選定と数値計算ライブラリの整備を担ってきた。ポスト「京」に向けては、メニーコアクラスタに対応した数値計算パッケージKMATHLIB2 の公開をめざしている。
一方、「京」までのスパコンでは実装が難しかった、非対称固有値計算や高次テンソルの計算に代表される「極難問題」を解くための並列アルゴリズムの開発にも取り組んでいる。また、「京」に向けて開発した「高精度計算フレームワーク」をポスト「京」に拡張する研究も行っている。計算有効桁数を制御したり潜在的な非決定性を取り除いて計算を繰り返すことで、蓄積する誤差を減らし計算の再現性を保証する手法も開発している。さらに、国内外の研究者や企業との共同研究・連携にも力を入れ、ポスト「京」にとどまらず、長期間にわたって利用可能な数値計算ライブラリの基盤技術の確立をめざしている。
おもな研究成果
世界最高速の固有値計算に成功
行列の固有値計算は、大規模なコンピュータシミュレーションや、ビッグデータにおけるデータ相関関係の解析などで必ず使用されるが、その計算量が行列の次元の3 乗に比例して増加し、計算時間がかかるために大規模問題を高速に計算することが難しい。従来の計算アルゴリズムでは、①密行列を三重対角行列に変換する前処理を行い、②その後に、三重対角行列の固有値計算を行って固有ベクトルを得、③最後に、もとの行列の固有ベクトルにする(図の緑線部分)が、計算が大規模になると①に膨大な時間がかかる。この問題への解決方法として、前処理として一度、帯行列に変換し、さらに三重対角行列に変換する2段階のスキーム(図の青線部分)も開発されたが、前処理部分を高速化できるものの、後処理部分の計算量が2倍以上に増加してしまう。EigenExa は、帯行列を直接導くことで、この流れを効率化する新たなスキーム(図の赤線部分)に基づくソフトウェアであり、「京」の全プロセッサを用いることで、100万×100万の行列の固有値問題を1 時間以内で解くことができた。過去の我々が知る世界最大規模の固有値計算は、地球シミュレータ(初代)の4992プロセッサを用いて40万×40万行列を3 時間半で解いた記録だった。
関連サイト