現在位置: ホーム torrent No.6 日本語版 第一原理計算の現状と課題を考える

第一原理計算の現状と課題を考える

日本と海外の第一原理ソフトウェアの概要

第一原理電子状態計算とは、文字通り物質の性質のほとんどを決めている電子の状態を計算する手法である。密度汎関数法など写実的な近似のもとに計算するので、物性の個別性へのアプローチに適している。この手法は計算機リソースを多く必要とするが、スーパーコンピュータ京によってその可能な応用範囲が大きく拡大されることは間違いない。例えば、今までともすれば不十分であった統計的な物質構造の揺らぎや多様性の扱いが完全な物となるなど、新しい展開が今後期待される。
第一原理計算を行うプログラムは国内、国外に数多くあるが、超並列化が必須になってきていること、対象となる物理量が多様化してきていることなどで、プログラムは複雑化している。そのため、日本の第一原理計算プログラム開発を今後どのような方向に導いていくのかは、関連するコミュニティにとって重要な課題となっている。そこで、国内外のプログラム群の現状について把握するため、まずは電子相関の近似手法による分類と、電子状態を表現する基底関数による分類を試みた(表1)。第一原理計算は物性物理系と分子科学系の2系統に大きく分けられるが、ここでは物性物理系のみを取り上げている。

一方、海外のプログラムは http://www.psi-k.org/codes.shtml でよくまとめられている。そのうち、筆者がしばしばその名前を見聞きするものを表2にまとめた。これらに対応する機能についても調べているが、今回は誌面を割くことができなかった。
表1を見る際には、筆者が伝導計算や補強法系の計算に詳しくない理由で表1のこの種のプログラムの情報に多少の誤りがある可能性に注意してほしい。また表1、2の開発者の名前は、特に寄与の大きいと思われる方を調査したつもりであるが、不完全かもしれない。表1を国内外で比較すると、多少調査に不十分な点があることを考えても、日本国内のプログラムを総合すれば海外のプログラムが提供している重要な機能のほとんどが網羅できることは確かなことで、これは日本のこの分野のこれまでの努力を示すものである。

平面波基底によるソフトウェアの現状

第一原理プログラムの中でも平面波基底によるものは歴史があり、多機能化やユーザインターフェースの整備が進んでいる。海外にはいくつも有名なプログラムがある。国内にも筆者が関わっているものを含めて多数のプログラムが存在するが、残念ながら多機能化とユーザインターフェースの整備が劣っている傾向にある。これは、国内のプログラムの利用者の多くが開発者とその周辺に限られており、開発者にとって必要性が薄い機能の整備は後回しになっているためではないかと思われる。
平面波基底によるプログラムは他のプログラムに比べて、実験関係者などプログラム開発を行っている研究者とその周辺だけでなく、一般の利用者への普及がもっとも進んでいるが、国際的に見ると VASPが台頭しており、日本にも浸透してきている。VASPは有償ではあるが、マニュアル、チュートリアルの整備状況がよく、また質問などできるコミュニティが確立していること、VASPで計算したとする論文が増えており、それが安心感につながっている。
一方、その他のタイプのプログラムを含めて国内を見ると、阪大のCMD®関連のプログラム群(STATE、MACHIKANEYAMA、Osaka2K、ES-opt、HiLAPW)やOpenMX、Phase、DV-Xαが普及に熱心である。DV-Xα法は、独特な方法で固体のエネルギースペクトル(特に内殻準位を含む)を低コストで調べることを得意とする。調査してみると、マニュアル/チュートリアルやユーザーコミュニティの整備は進んでおり、また利用者の数も平均的な国内の平面波基底プログラム以上である。

第一原理計算の今後の方向を探る

では、第一原理計算プログラムは今後、どう導いていくべきであろうか。
言うまでもなく、用いている近似には精度が十分でないものは数多くあり、新しい手法開発は継続しなければならない。また、マルチフィジックス、マルチスケールの手法など、この計算を部品として必要とする手法を開発していくには、計算の中身を把握している必要がある。これら二点は手法開発ができる基盤を維持する必要性を示している。しかし、一方で基盤に求められる機能は多様化しており、また高並列化への対応、計算の入力データの作成(前処理)から、計算の可視化(後処理)など利便性向上のための開発までが求められている。そうなると、1人の開発者がプログラム開発からアプリケーションまでを一貫して行うことは難しく、多人数での協力が必要になってくる。
この観点に立つと、国内で特に数の多い平面波基底のプログラム群は、できれば一本化することが望ましい。その必要性は前々から議論されているが、なかなか進んでいない。その理由を、まず開発者側から見ると、もともとこれらのプログラムは開発者やその周辺の人たちの必要性から作られており、自分たちがそれを理解できることが前提になっている。そのため、数万行から十数万行の規模になると、理解するのに時間がかかり、プログラムの引っ越しに大変な抵抗感が出てしまう。
一方、ユーザー側から見ると、第一の理由は入力出力操作の慣れが大きい。もう一つは、同等の手法のプログラムでもその詳細は異なるため、どうしても計算結果には手法の細かい差に起因する違いが含まれている可能性がある。そのため、他のプログラムに移行するには再計算して確認する必要が出てくる。
このようなことから、一本化を推進するには段階を踏んでそれぞれのプログラムを利用/開発しているコミュニティを誘導していく必要がある。まずは、プログラム間で入力出力を共有/比較できるようにすることではないかと思う。同等の入力について、複数のプログラムの間で同じ結果がきちんと出ることは、プログラムや手法の検証の意味で重要であるし、またプログラム間の性能比較の上でも欠かせない。
さらに、一本化によって引越しを行う利用者/開発者が引越し先のコミュニティにうまく受け入れられるような環境づくりも必要になる。例えば、プログラムには思想が現れるから、複数の思想のプログラムが混じると多少の不統一感が出るが、これはある程度許容しないと、異なる開発者がまとまることはできない。また、あるプログラムからの乗り換えを奨励する場合、国内で候補となるプログラムが海外のプログラム群と比較して、ライセンスのあり方、コードの詳細についての情報提供の体制などで遜色ない体制になっていないと、かえって空洞化が促進されることになるだろう。