アプリケーション開発の最前線から 第8回 SMASHの開発者・石村さんに聞く
2014年9月1日、量子化学計算プログラムのニューフェースがオープンソースライセンスでweb公開された。その名はSMASH。量子化学計算分野には、すでにGaussianやGAMESSといった大きなシェアをもつプログラムがあり、世界中の研究者・技術者の知識と経験を取り込み進化を続けている。そのような状況のなか、驚くべきことにSMASHはたった一人の研究者の不断の努力と熱意によって開発され、公開にまでたどり着いた。そのSMASHの開発者である石村和也さんにスポットを当ててみた。
話し手:
石村和也
自然科学研究機構 分子科学研究所
計算分子科学研究拠点 特任研究員
聞き手:
澁田靖
東京大学大学院工学系研究科
マテリアル工学専攻 准教授
メニーコア時代の量子化学計算
SMASHの正式名称はScalable Molecular Analysis Solver for High performance computing systems。その名の通り、スカラ型CPU搭載マシンであればPCクラスタから「京」まで、ルーチンワークで電子状態および構造最適化計算が可能なのが特色である。
量子化学計算では、水素原子など一部の例外を除いて解析的に解けないSchrödinger方程式に、化学・物理的知見に基づいた近似を導入して、分子の電子分布などを求める。具体的には、原子軌道(原子の電子分布)と座標を入力として、最も基礎となるHartree-Fock計算をおこなうと、分子軌道(分子の電子分布)を得ることができる(図1)。計算量はおおよそ原子数の3乗、高精度計算では5乗以上に比例して増加するため、計算の高速化と並列化が不可欠である。
SMASHでは、座標軸を回転させて演算量を削減するPople-Hehre法と漸化式を用いて高い軌道角運動量項を効率的に求めるMcMurchie-Davidson法を組み合わせて、ほとんどの量子化学計算で行われる原子軌道2電子積分計算の高速化を実現した。また、結合長、角度、ねじれ角の情報を利用するredundant座標などの導入により、構造最適化サイクルを削減して、より実用的なプログラムになっている。
実際、SMASHによる大規模並列計算では、360原子からなる2層グラフェン(C₁₅₀H₃₀)₂ のB3LYPエネルギー計算を、「京」10万CPUコアを用いておこなった結果、5万倍のスピードアップと実行効率13%を達成した(図2)。また1ノード計算性能としては、タキソール(C₄₇H₅₁NO₁₄)分子のHartree-Fockエネルギー計算時間をGAMESSと比較して最大40%削減することに成功している。
これは、これまで困難とされていた巨大分子の電子状態関連の大規模並列計算に一筋の光を与えるもので、メニーコア時代を迎えて効率的な開発を進めるための基盤ツールとして多くの期待を集めている。このような大きな可能性を秘めた大規模並列量子化学計算プログラムの開発に、石村さんはなぜひとりで立ち向かったのだろう。
SMASH開発のきっかけと苦労
石村さんは卒論研究以来、量子化学計算の研究に携わってきた。プログラムはGAMESSをベースにして開発してきた。その間、2電子積分計算および電子相関計算の一つである2次の摂動(MP2)法に関するコードが公式にGAMESSに採用されるなど、アルゴリズムとプログラム開発の経験を着実に積み重ねてきた。ところがあるとき、より高い並列性能を実現するためGAMESSにOpenMPを導入しようとしたところ、変数の取り方から骨格部分にいたるまで大幅に変更する必要が生じ、結果的に特定の計算しかできない特殊なコードになってしまった。当然、それをGAMESS本体に採用してもらうことはできない。石村さんはこのとき、メニーコア時代の計算機を効率よく使うプログラムの必要性を痛感した。そして、既存のプログラムベースでの開発に限界を感じ、「それなら一から自分でつくってしまったほうが結果的に早いだろう」と、大規模並列量子化学計算プログラムの本格的な開発を始めたのである。
プログラム開発と聞くと一日中キーボードをたたいている姿を想像してしまうが、石村さんの場合、紙と鉛筆を用いた作業に多くの時間を費やすという。プログラムを速くするための式の形や、多次元配列の並び、ループの回し方、適切な近似の導入などを総合的に考えてアルゴリズムをつくっていく過程が重要であり、プログラムを書くこと自体にはそれほど大きな苦労はなかった。半面、SMASHを開発していく中で、こういうプログラムを一からつくってもどう評価されるか分からないという不安と苦悩があった。メインのアルゴリズムはすでに論文にされており、それを具体化して誰もが自由に使えるようにするのがSMASHの開発だ。その意味では、プログラム開発はあくまで目的ではなく手段であり、手段のところで時間をかけても成果としてのアウトプットが見えにくいのが正直なところである。
あらたな出会いと発展
一方、SMASHは量子化学計算に対するニーズに対しても確実に期待に応えている。例えば石村さんは、文部科学省「元素戦略プロジェクト」と連携し、自動車の排ガス浄化触媒における代替金属を探そうと量子化学の立場から検討している。金属酸化物担体上の金属触媒の量子化学計算では、担体や触媒の特性にクラスタサイズの影響が出ないようにするため、最低でも数nm以上のサイズが必要であると考えられる。石村さんはすでに560原子からなるAlPO₄担体上のRh触媒の電子状態計算を実現している( 図3)。こうした研究が積み重ねられ計算機の支援によって代替金属触媒が設計できるようになれば、触媒開発にかかる実験コストが大きく下がり、とくに自動車産業への貢献が非常に大きくなることだろう。大規模並列量子化学計算を実現するSMASHに大きな期待が寄せられているのは当然の流れといえる。
図3.金属酸化物(AlPO₄)担体上のRh微粒子構造(560原子) |
ポスト「京」世代の人材育成
プログラムを開発することと次世代の人材を育てることには共通点が多い。縁の下の力持ち的な要素が多く、目に見える成果が得られるまでに多くの時間と労力を要するからである。地道なプログラム開発を経験してきた石村さんだからこそ、ある意味自然な流れの中で次世代の人材育成に取り組めるのかもしれない。「私自身がかつてGAMESSで量子化学計算の基礎を勉強したように、若い人がSMASHで勉強してくれればうれしい」。石村さんの言葉には重みが感じられる。
ちなみにSMASHというネーミングは、今でも石村さんが週1回は練習しているという趣味のバトミントンに由来する。SMASHのロゴにあるシャトルのように、SMASHがポスト「京」時代の最前線を疾走することを期待したい。
石村 和也いしむら かずや 自然科学研究機構 分子科学研究所
|
---|
◆インタビュー後記◆澁田靖しぶたやすし 今回のインタビューを通じて、目に見える成果が得られるまでに多くの時間と労力を要するプログラム開発と、次世代の人材育成との間に、多くの共通点があると感じました。石村さんのプログラム開発にかける不断の努力と熱意に触れることにより、学部学生や大学院生への教育のあり方に日々苦心する一人の大学若手教員として、大いに触発される良い機会となりました。 |
---|