理化学研究所(理研)は12月5日、大規模コンピュータシミュレーションや、ビッグデータにおけるデータ相関関係の解析などに必要な行列の固有値を高速で計算できるソフトウェア「EigenExa(アイゲンエクサ)」を開発し、スーパーコンピュータ(スパコン)「京」にて100万×100万の行列での固有値計算を行った結果、従来は1週間程度必要だと考えられていた計算を、1時間で計算することに成功したと発表した。

同成果は、理研計算科学研究機構 大規模並列数値計算技術研究チームの今村俊幸チームリーダーらによるもの。

行列の固有値計算(行列の対角化)は、半導体設計や未知の性質を持つ材料の開発、新薬設計などのための大規模なコンピュータシミュレーションや、ビッグデータにおけるデータ相関関係の解析などで必ず使用される計算法であり、中でもコンピュータシミュレーションで行われる行列の固有値計算の大部分は、行列の左上から右下への対角線を基準に対称な行列で、かつすべての要素が実数である実対称行列の標準固有値問題あるいは一般化固有値問題と呼ばれるもので、大規模な問題では行列の次元(縦横のサイズ)は数万から数十万におよぶ。

行列の標準固有値問題や一般化固有値問題は、行列の1行当たりの要素数の3乗に比例して計算量が増加することが知られています。要素数が2倍になれば計算量は8倍になるということです。小規模な問題を扱う場合には一般的なコンピュータでもわずかな時間で計算できますが、問題サイズが数倍になるだけで計算することが難しくなります。計算時間の削減のためには、「京」のような高い計算能力のスパコンを利用することが必要です。

また、固有値計算では専門的な数学の知識が必要になるため、専用の数学ソフトウェアを利用することが一般的となっているが、現在のスパコンで利用されている標準的な数学ソフトウェアは1990年代後半のスパコンをベースに設計・開発されているため、「京」のような超並列コンピュータを想定して開発されていないほか、そうした標準数学ソフトが開発された時期から現在まで、プログラミング言語の発展などもあり、先端スパコンの性能を生かし切れなくなってきているという課題があった。

そこで研究グループは今回、超並列演算が可能な"京"の計算能力を活用した大規模な固有値計算を高速に実現できるソフトウェアの開発に挑んだという。

一般的に固有値の計算は行列をより固有値計算が行いやすい行列に変換し、それを中間形式として取り扱う手法が用いられる。そのため従来の計算アルゴリズムでは、行列を構成する要素がゼロでない行列である密行列を、三重対角行列(帯行列の中で行列の対角線上の要素とその上下にゼロでない要素がある行列)に変換する前処理を行った後、三重対角行列の固有値計算を解き、固有値と対応する固有ベクトルを計算。そして最後に、もとの行列の固有ベクトルにするための後処理を行うという一連の処理が行われていた。

この3つの段階において、三重対角行列に変換する前処理が、最も計算時間を必要とする部分であり、この前処理の高速化に向け、新たに前処理に三重対角行列を経ずに、直接帯行列を経由して固有値と固有ベクトルを求めるアルゴリズムを採用した固有値計算ソフトウェア「EigenExa」を開発。この新たな1段階スキームにおいて、前処理は2段階スキームに類似した性質を持ち、後処理は今までの古い1段階スキームと同じ性質を持つ。また、固有値計算部分は三重対角行列を計算する場合に比べて数倍増加するが、前処理での処理時間削減の効果が大きいため、同スキーム全体はより少ない計算時間となるという。

研究チームでは2013年8月に"京"の大規模ジョブ実行により、66万3552プロセッサ(理論ピーク性能10.6PFLOPS)でのEigenExaの動作確認と性能測定として、100万×100万までの数字がランダムに並んだ密行列を用いた演算を実行。測定の結果、100万×100万の行列の固有値計算が約1時間で完了することを確認したほか、処理の実行速度は理論ピーク性能の16%に当たる1.7PFLOPSであることも確認したという。

ちなみに、これまでの世界最大規模の固有値計算は地球シミュレータの4992プロセッサを用いて40万×40万行列を3時間半で行ったというもので、京と同規模の固有値計算が可能なスパコンで、100万×100万の行列の固有値問題を計算したという報告はないという。

今回の結果について研究グループは、少なくとも"京"においては、数万×数万から100万×100万の行列の固有値計算はごく普通の計算の範疇に入ることが立証されたことから、同ソフトを活用することで、シミュレーション中でより大規模な問題に対して固有値計算を実行できるようになるほか、これまでの計算手法を比べて、同じ規模の行列であれば、より高い計算精度で求めることができるようになるとしており、この成果を応用することで、量子物理や量子化学などの研究をより詳細に進めることが可能となるほか、新物質の性質を調べるための大規模な量子スピン系の3次元シミュレーションが可能になることから、半導体デバイス設計や新材料開発、新薬設計へと結びつくことが期待できるとしている。

なお、EigenExaは2013年8月1日より、オープンソースソフトウェアとして一般に公開されており、大規模並列数値計算技術研究チームのWebサイトよりダウンロードすることが可能だという。また、"京"にもインストールされているため、"京"のアカウントを持つユーザであれば誰でも利用することが可能だという。

今回考案された「新しい1段階スキーム」の概要。新しい1段階スキーム(赤線)では、前処理は2段階スキーム(青線)に類似した性質を持ち、後処理は今までの古い1段階スキーム(緑線)と同じ性質を持つ。また、固有値計算部分は三重対角行列を計算する場合に比べて数倍増加するが、前処理での処理時間削減の効果が大きいため、新しい1段階スキーム全体はより少ない計算時間となる。左右にある薄黄色と薄青色で塗りつぶした三角形の部分はそれぞれ前処理、後処理に対応している