SCLS Eyes
long version

 紙面ではスペースの都合上で掲載できなかった内容がウェブ限定で読める、ロングバージョンです。

「京」の性能を最大限に活かす分子動力学ソフトを

─ いつごろから「GENESIS」の開発に取り組まれたのですか。

杉田  「京」の完成前、2010年ころから開発を始めました。コンピューターを用いて分子集団系内の原子間相互作用を物理法則に基づいて計算し、分子の動きを再現する方法は「分子動力学(MD)法」と呼ばれます。これまでに世界中で数多くのMDシミュレーションソフトウェアが開発されていますが、「京」のように多数のCPUを用いて、大規模な分子集団系に従来の計算アルゴリズムを適応しようとしても、CPU間の通信時間が増大するため高速計算に限界があります。そこで、「京」の性能を最大限活かせるMDシミュレーションソフトウェアを自分たちでつくろうと開発に着手しました。ただ、開発が容易でないことは目に見えていましたから、個人的には取りかかるまでのハードルはとても高かったというのが正直なところです。まずは「京」でちゃんと走る自分たちのコードをつくるところから取り組みましたが、最初は思うようにスピードが上がりませんでした。さらに研究に使えるものにするためにはいろいろな機能も追加していかなければならず、途中、何度も絶望的な気分になりました。中心になって開発を進めてくれた森さんやジョンさんも、いつになったらゴールが見えるのか分からない状況のなかで開発を続けていたと思います。

 最初は、既存のソフトウェアと同じ結果が出るかどうかに注力しました。同じ結果が出ないということは、「GENESIS」にバグがあるということですから。次にアルゴリズムですが、シミュレーションでは温度や圧力を一定に保つという方法があり、そうした方法を付け加えていくのですが、最初のうちは私が導入したアルゴリズムが間違っていたためか、温度制御は問題なく進んだものの、圧力制御の方はけっこう苦労しました。とにかく勉強を積み重ねながら、1つずつ問題を解決していったという感じです。基本的なアルゴリズムを入れないと研究が始まらないので、まず基本的なことができるようにして、その上で新しい方法を開発していこうと思っていました。ただ、プログラムの開発は好きでしたから、辛い作業とは思いませんでした。

先生達の写真

ジョン  私はここに来るまで電子状態理論に関する量子化学計算をやっていて、MD計算についてはほとんど知りませんでしたから、論文を読み、イチからMD法について勉強しなければなりませんでした。それでも、最先端の「京」が使えるということは大きな魅力でした。これまでできなかった新しい経験やインパクトのある成果が得られるだろうし、自分にとってもよいチャレンジになると思ってやってきました。

杉田  最初の3年くらいは論文を書くどころではなくて、ひたすらプログラムをつくっていました。

ATDYNとSPDYN

─ 壁を乗り越えて、開発が大きく進展したのはいつごろでしたか。

杉田  SPDYNの開発が軌道に乗ってからだと思います。「GENEIS」は、ATDYNとSPDYNという2つのMDプログラムと解析ツールとで構成されています。原子分割法を導入したATDYNは、粒子間相互作用の全ペアの計算を並列化するアルゴリズムを用いているのに対して、SPDYNは空間分割法によって空間全体を小さなドメイン(領域)やセルに分割し、そこに含まれる粒子間相互作用ペアの計算を並列化するアルゴリズムを用いています。言い換えれば、ATDYNは相互作用を単純にCPUの数で分割しているのに対して、SPDYNはデータ分割というイメージで、必要なデータをやり取りしながらも、ドメインやセルのなかの相互作用だけを分割しているわけです。SPDYNでは、データ通信が主に隣接するドメイン間で発生するため、データ通信量を大幅に削減することができ、より大きな系を高速に計算することができます。これを実現するために徹底的な分割を行い、余分なデータを持たないようにしました。いろいろな工夫が凝らされているので、プログラムは非常に複雑です。ここまでやるのはたいへんでしたが、ジョンさんが頑張ってくれました。

──「GENESIS」のもう1つの大きな特徴は、レプリカ交換分子動力学(REMD)法の導入ですね。

杉田  REMD法は、対象とする分子集団系のコピー(レプリカ)をいくつも用意して、それぞれ異なる温度を含むMDシミュレーションを並列に実行し、ある頻度でパラメーターを交換することで、異なる条件のシミュレーションを混合させる方法です。パラメーター交換によって、例えば低温から高温までさまざまな温度で、タンパク質の立体構造を一度に予測することができます。普通のMDでも多様な構造が取れますが、計算に時間がかかり過ぎます。「京」を使っても、十分に多様な構造が得られません。その点、REMD法では同じ計算時間で普通のMDの何十倍、何百倍の空間構造を取ることが可能です。最終結果はいろいろな構造の平均値なので、REMD法ではより正しく計算できることになります。さらに、低温では初期構造に近い状態であることがよくありますが、高温のシミュレーションを混合させることで、初期構造とは異なる立体構造を探索することもできます。また、「GENESIS」では温度だけでなく、圧力や表面張力・拘束力など、いろいろな条件を交換することができます。こうしたREMD法については、森さんが粘り強く開発に取り組んでくれました。

figure1 figure2

より高機能なMD法の確立を目指して

─ 「GENESIS」は、いよいよ2015年5月8日からオープンソースソフトウェア として公開されました。

杉田  ソフトウェアは常にアップデートしていくものなので、どのタイミングで公開するかについてはいろいろ考えましたが、ベンチマークでも世界最高水準の速さを達成しましたし、論文も発表しましたから、よいタイミングではないかと判断しました。税金を使わせていただいているプロジェクトですから、成果を公開していくというのは当然のことです。今回公開されたソフトウェアは、GPLv2ライセンスといって、第三者によるソースコードの改変や、商業利用も可能です。ただし、改変したソフトウェアを配布する場合は、ソースコードを公開する義務がありますが。それでも無償ですから、アカデミックな研究者だけでなく、製薬会社などの方々にもどんどん使っていただきたいですね。もともとは「京」のために「GENESIS」を開発しましたが、実際には「京」以外のほとんどのコンピューターで動くようにつくってあります。一方で私たちは、さらに他の機能もたくさん加えていこうとしています。今後の目標としては、「GENESIS」をMDプログラムの世界標準というか、MDシミュレーションソフトウェアといえば「GENESIS」と呼ばれるまでに高めていきたいと考えています。私たちの研究室でも、新しいことをやりたい研究者は、どんどん「GENESIS」に新しい機能を付け加えて、それを自分たちの研究に活かし、最終的には誰もが使えるように汎用化して、次のバージョンに組み込んでいこうとしています。

先生達の写真

 私も開発を続けながら、今は「GENESIS」を使って膜たんぱく質の機能について応用研究を進めています。当然、「GENESIS」に入っていない機能、普通のMDではできないようなことは、自分で開発して加えていくことになります。そうすることによって、自然に「GENESIS」が発展 していけばいいと思っています。

ジョン  私の場合は、「京」もしくは「京」以外のコンピューターでも構いませんが、とにかく「GENESIS」をより速く使いやすくするための開発に取り組んでいます。例えば、これは「京」ではありませんが、グラフィックプロセッシングユニット(GPU)を応用してMD計算を速くするGPGPUの開発が、ほぼ仕上がりつつあります。また、ポスト「京」に関するプロジェクトも、もう動き出しています。「GENESIS」はポスト「京」のターゲットアプリの1つに選ばれており、ソフトウェア開発者とベンダーが協力して、「GENESIS」がもっと速くなるように、ソフトウェアだけでなくマシンのアーキテクチャも一緒に進化させていくというコーデザインを検討しています。

今後も進化を続ける「GENESIS」

─ オープンソース化で新しいユーザーが増えることによって、さらに進化していくこともあるでしょうね。

先生達の写真

杉田  そうなると、いちばんいいですね。それからATDYNとSPDYNは、最初から意図して開発してきたのですが、SPDYNは高速化を徹底的に追求してシンプルさを犠牲にしていますが、ATDYNの方は比較的シンプルなんです。ATDYNは、森さんがものすごく分かりやすく書いています。MDのコードのなかで、いちばん分かりやすいといっても過言ではありません。私はこれが重要だと思っています。ある程度単純なコードでないと、特に学生や若い研究者たちは理解しようと思ってもできません。私たちとしては、若い人たちがプログラムを理解して、さらに改良してみようと思える部分を残したいと考え、敢えてATDYNはシンプルにしています。教育用としても活用できるはずです。

 そうですね。私としても、ある程度速度が犠牲になっても、読みやすいプログラムを目指して開発してきましたから、いろいろな人に活用してもらいたいです。MDの教科書はたくさんありますが、学生やMDをやり始めた人は、本を読んだだけでつくるのは難しいと思います。いろいろな知識が必要で、何より実際にプログラムを見てみないとよく分かりません。ATDYNのようなシンプルなプログラムを見て、学んでほしいと思います。

ジョン  私も最初は、森さんが書いたATDYNのソースコードをじっくり見ながら勉強しました。

杉田  もちろん、シンプルなATDYNも、複雑なSPDYNも、どちらも同じように使いやすくできていて、インプットのプログラムスタイルをはじめ、使い方もほとんど同じです。ただ、ATDYNは分かりやすいことに特化していて、SPDYNは高速化に特化しているということです。

─ 先ほど、「GENESIS」をMDプログラムの世界水準にというお話が出ましたが、そのために今後は具体的にどのような開発を行っていくお考えですか。

杉田  すでにお話してきたように、最初の「GENESIS」は「京」で高速に計算できることと、標準的なMDの機能を付けることを目指していましたが、今後は、先ほど森さんからも出たように、他のMDパッケージに備わっていて今の「GENESIS」にできないものを取り入れていく、さらにはまったく新しいオリジナルな付加価値を付けていくことを考えています。つまり高機能化です。もう1つは、「京」以外のマシンでもより高速化させていくことです。現在の「GENESIS」は、「京」のように大きなコンピューターを使った大規模なシミュレーションは得意ですが、実は普通のパソコンで小規模なシミュレーションを高速にこなすのは、あまり得意ではありません。そうした部分についても、今後は改善していきたいですね。幅広い計算環境でより高速化できれば、もっとユーザーが増え、研究や創薬などに活用してもらえるのではないかと思っています。

pegetop