広報活動

Print

2013年12月5日

独立行政法人理化学研究所
独立行政法人科学技術振興機構

「京」を使い世界最高速の固有値計算に成功

-超巨大行列の固有値を1時間で計算-

従来の方法と、EigenExaの方法との関係図

従来の方法(緑線、青線)と、eigenexaの方法(赤線)との関係

高校時代の数学の先生いわく「こんなにエレガントな学問は数学のほかに無いと思わないか」。公式通りに計算していけばスッキリとした答えが出るので、そうかなあと思っていましたが、行列とベクトルで挫折した苦い経験があります。もう出会わないと高をくくっていたら、固有値計算の研究成果のサマリーを書くことに…。

行列の計算では、行列の固有値を求めること、固有ベクトルを求めること、が求められます。「固有値、固有ベクトルって何?」ということになるのですが、ごく単純化するとこうなります。

ある行列Aが与えられている時、そのAに対して「Ax=λx」という式があるとき、それを成立させるλの値が固有値で、xの値が固有ベクトルになります。固有ベクトルと固有値は密接につながり、固有ベクトルの大きさは固有値の倍数になります。つまり、固有ベクトルごとに分けて考えれば力や方向の問題が単純化されて扱いやすくなります。

計算科学の分野では、量子物理や量子科学の現象を行列で表し、その固有値を求める(行列の対角化ともいいます)ことによって問題を解いています。この手法は新しい電子材料の発見や新薬の設計などのための大規模なコンピュータシミュレーションやデータの相関関係の解析に使われています。しかし、行列の固有値計算では計算量が行列の次元の3乗に比例して増加するため、これまでのコンピュータでは能力不足でした。一方で、理研のスーパーコンピュータ「京」のような超並列スパコン向けの効率的な固有値計算用の数学ソフトも存在しませんでした。

行列の固有値計算では行列を簡単な形式(形状)に変換し、それを中間形式として取り扱います。理研の研究チームは、帯行列(ゼロでない要素が対角線上に帯状に分布する行列)を中間形式に採用することによって、前処理の時間の削減を図った新しい計算アルゴリズムを考案し、それを基にした数学ソフト「EigenExa(アイゲンエクサ)」を開発しました。「京」の全プロセッサを用いて計算した結果、世界最大規模の100万×100万の行列の固有値計算が1時間以内で可能なこと確認しました。これまでの地球シミュレーターの記録(40万×40万の行列で3時間半)を大幅に上回りました。「京」の高い計算能力とEigenExaの利用により、数十万から100万程度の固有値を求める問題は1時間以内にできることが立証されました。今後、シミュレーションの規模を大幅に拡大することが可能になります。なお、EigenExaはオープンソフトウエアとして公開され、理研計算科学研究機構研究部門のホームページからダウンロードできます。

理化学研究所
計算科学研究機構 研究部門 大規模並列数値計算技術研究チーム
チームリーダー 今村 俊幸 (いまむら としゆき)