理化学研究所 計算科学研究センター

メニュー
メニュー
Kcomputer 京について

「EigenExa(アイゲンエクサ)」開発者へのQ&A

「京」登場以前は1週間程度かかると考えられてきた計算時間を、わずか1時間に短縮することに成功した新開発ソフトウェア「EigenExa(アイゲンエクサ)」。開発者である今村チームリーダー大規模並列数値計算技術研究チーム)に、現在公開中のこのソフトウェアについて詳しくお話を聞いてみました。

―  どのような課題を解決するためにこのソフトを作ったのですか?

今村: 量子物理シミュレーションや量子化学シミュレーションでかならずといってよいほど使われ、かつ非常に計算量の多い「固有値計算」を短時間に解決するために作成しました。また、これまでの固有値計算を行うソフトウェアよりも柔軟で使いやすいなど、既存のソフトウェアに欠けていた各種機能の拡張も開発の目的です。

 

―  今までのソフトとなにが一番違うのですか?

今村:「京」コンピュータや最新のスパコンで主流となっている様々な並列処理方式に対応しています。また、ソフトウェアの実行中にメモリへのアクセススピードが問題となっている部分があり、それを解決するためにブロック化(行列の要素を個々に分けて計算していたものをある程度の大きさのブロックにまとめて一括処理する工夫)により高速化を実現しており、従来のソフトウェアと比較して2~3倍程度、高速です。また、「京」のように8万ノードにものぼる超大規模スパコンで多数のプロセッサを使っても十分性能が出せること、いわゆる“スケーラビリティが高い”ことが大きな特徴です。


今村チームリーダー

―  どのような研究やそのスピードアップに役立つソフトでしょうか?

今村: まず、量子物理シミュレーションや量子化学シミュレーションなどです。これは、具体的には半導体デバイス設計や新材料開発、新薬の探索などを行うための大規模コンピュータシミュレーションで、今回開発したソフトウェアによって高速計算が可能となったので、より早くデバイス設計が出来たり、より広い可能性から新薬の探索が可能となると思います。また、バイオインフォマティクスや社会科学といったデータを解析する分野でも固有値計算は良く用いられるので、このような分野のシミュレーションの高速化にも貢献すると考えられます。

 

―  開発する時、どのような点に苦労しましたか?

今村:  このプログラムの前身は実は私が修士課程の学生だった頃に(20年前?)作成していたものから継続しているといえます。使用しているアルゴリズムやプログラミング言語も当時とは全く違うので、まったく面影はないのですが、プログラムの一部に(変数名や関数名)にかつての名残が見られます。現在のプログラムの直接のもとになったものは私が地球シミュレータを使用していたころに作成したプログラムに基づいています。地球シミュレータはベクトル計算機という「京」とはかなり違うアーキテクチャの計算機だったので、それに適したプログラミングやチューニングテクニックを必要としていました。ですので、今回、「京」に向けた最適化には、かなりの部分の書き換えが必要となったところが一番大変でした。また、現在のバージョン以前にEigenKという名前で日本原子力研究開発機構から公開していたものがあるのですが、その開発時には「京」はまだ開発中であったため使うことができず、プログラムの性能ボトルネックがどこにあるかを正確に把握できずどのように改良していけばよいか見当がつかず困ったという経験があります。

 

―  実際使ってみたユーザーからのコメントなどはありましたか?

今村: 通常ユーザからの意見は無いことが多いのですが、今回は「速くなった」とか「並列化効率化がよくなった」などのコメントを頂き、大変うれしく感じます。

 

―  「京」をこれから使おうと思っているユーザーへのメッセージをお願いします。

今村:「京」は8万ノードを超える大規模システムで、大学のシステムではなかなかできない規模の計算が瞬時のうちにできます。使い慣れてくると大変魅力的なシステムです。これから使ってみようというユーザーの方は、最初の段階では「京」は普通のPCクラスタと変わらないと思って使えばいいと思います。使用するノード数が1000を超えるころからは国内の情報基盤センターを独占利用している規模になってきますので、それなりの高速化のノウハウが必要になると思います。特にそれが数学ソフトウェアに関わるのであれば、是非ご自分で作らずに、理研で公開しているオープンソースソフトウェアを活用するといいでしょう。

 

今村俊幸プロフィール
プロフィール
今村俊幸(いまむら・としゆき)

京都大学工学研究科応用システム科学専攻。
高性能計算ソフトウェア特に数値線形ソフトウェアの自動チューニングを行う。
平成24年4月からAICS(現在のR-CCS)の大規模並列数値計算技術研究チームのチームリーダーとして勤務。

「独身のころは博物館めぐりやワインなどを楽しんでいましたが、今は妻とレストランに行ってグルメ気分を味わっています。大学勤めの時は居室が個室だったのでJazzを大音量で聞いていましたが、理研はパーティションのため聞けないのが残念です。(笑)」