第一原理分子軌道計算DVXα法のオブジェクト指向化と専用計算機の開発

佐々木 徹, 長嶋 雲兵, 塚田 捷


Return

1 はじめに

非経験的分子軌道法は、さまざまな機能性分子の設計や開発に対して最も基本的でかつ重要な手法である。しかし、その計算量はハートリーフォック計算の場合でも、用いる基底関数の4乗に比例するため、生体内や固体表面での化学反応解析等の大規模系の電子状態計算には膨大な計算コストが必要になる。現実的には、非経験的分子軌道法は、設計したい大きさの大規模分子系ではなく、それを簡素化した小規模モデル分子への適用がせいぜいである。1990年代前半までは数百基底(数十原子)の分子軌道計算でさえ、その当時のスーパーコンピュータシステムを必要としていた。そのため、現在でも分子設計に必要な情報を十分な精度で得ることができないでいる。
1990年代後半における計算機の進歩、特にスーパーコンピュータや高性能ワークステーションのような大規模並列計算機の進歩により、ようやく生体分子などの高分子を意識した1,000基底を超える分子軌道計算[1 - 5]が行われつつあるが、これらの計算機は高価であり、かつ設備の維持管理も大変であるため、研究者が研究室レベルで「現実を反映した大規模分子系」の分子軌道計算を実現することは容易なことではない。
「現実を反映した大規模分子系」の分子軌道計算を、「低コスト=パーソナルユース」で実現するためには、計算量を軽減するための近似法を取り入れ、さらに計算機の性能を飛躍的に向上させることが必要である。
計算量を軽減するためには、2つの方法が考えられる。一つは、経験的または半経験的分子軌道法のように必要な計算をまともにする代わりに実測値を用いて計算量を削減する方法である。この方法は演算量が大幅に軽減されるにも関わらず、炭化水素などの系では計算される物理量が実測値をよく再現することから、MOPAC[6]のように非常に広範囲に利用されている。有機化学反応におけるフロンティア軌道理論や遷移状態理論などの普及は、経験的や半経験的分子軌道法なしには考えられなかった。しかしながら、経験的または半経験的分子軌道法は、実測が無い系や金属のように周辺の環境によって様々な状態を容易にとる系には利用できないことや、計算結果の信頼性にばらつきがあることがよく知られている。他は、実測値をパラメータとして用いる代わりに、本論文で取り扱うDVXα法[7]のように、ハミルトニアンに近似を導入することで計算すべき積分自体を簡素化して計算量を軽減する方法である。DVXα法の演算量は、基底関数のほぼ3乗に比例する演算量となる。DVXα法のように近似ハミルトニアンを用いる計算法は、計算量や結果の信頼性などの面から非経験的分子軌道法と半経験的分子軌道法の中間に位置づけられている。この方法は経験的パラメータを陽に含まないことから、第一原理分子軌道計算または第一原理計算と呼ばれている。
また計算機の性能を飛躍的に向上させるための試みは、分子軌道計算法の持つ高い並列性を背景にして、パソコンなどによる並列分散処理システム(PCクラスタ)の構築[8]や専用計算機の開発等が最近進められてきている。我々のグループも大規模分子の非経験的分子軌道計算専用機として、分散小メモリ型並列アーキテクチャである分子軌道計算専用並列計算機MOEの開発[9 - 12]に現在取り組んでいる。しかしながら、その様な専用計算機を用いたとしても生体分子や物質材料等の大規模系の分子軌道計算を行うことは依然として難しい。
そこで、本研究では第一原理分子軌道計算法の一つであるDVXα法を用いて計算量を軽減し、さらに専用分散並列計算機を開発して計算速度の向上をはかることで、「現実を反映した大規模分子系」の分子軌道計算を「低コスト=パーソナルユース」で実現するシステムの開発を行ったので報告する。

2 オブジェクト指向言語C++によるDVXα法プログラムの開発

第一原理分子軌道計算法の一つであるDVXα法[7]は計算精度の面ではやや不満があるものの、塚田らのSTMシミュレータ[13 - 17]に使用されるなど物質材料の第一原理計算を行う上では手頃な手法であり、その物質材料設計に対する有用性は大きい。また、手法そのものが高い並列性を持っているため、PCクラスタなどでも容易に並列化が可能である。そこでDVXαプログラムをオブジェクト指向C++言語を用いて作成し、汎用プロセッサと並列アクセラレータを具備した分散並列専用計算機上に移植し高速化を図った。


Figure 1. Class Diagram of DVXa Program

塚田らが主宰するCMSフォーラム[18]で公開されているFortran版のDVXαプログラム[19]を詳しく分析してみると配列データ群がINDEX値により関連づけられており、データ構造全体がオブジェクトとして定義されている、すなわち明示的ではないがオブジェクト化されていることがわかった。そこでそのデータ構造を参考にして、プログラミング言語にオブジェクト指向言語C++を用いて、オブジェクト指向プログラミングを行った。
このようなオブジェクト指向プログラム言語C++を用いた分子軌道計算プログラムの開発の例は世界的にみてもまだ少なく、日本では佐藤らの密度汎関数法による分子軌道計算プログラムのオブジェクト指向化[20]があるのみである。
Figure 1.にクラス構成図を示した。なお、図中、Atom Typeは点群対称の位置にある原子をまとめたものであり、Symmetry Groupは同一の点群対称を持つ基底関数をまとめたものである。そのため部分行列もSymmetry Groupに含めている。
オブジェクト指向化の利点としては、プログラムを小さな部分(オブジェクト)に分割しそれを組み合わせて実行をおこなう構造になるため、プログラム全体の見通しが良くなることである。これによりプログラミング効率だけでなくドキュメンテーションの問題もかなり改善できることがわかった。さらにこのようにすることで、計算科学と計算機工学の研究者間での意志の疎通が図りやすいという利点がある。また、計算負荷の大きい部分を並列計算機システムに移植するには単にオブジェクトを分割して実装すれば良いので、並列化の指針が得られやすいという利点もある。

3 DVXαプログラムの並列化

DVXα法では、一電子波動関数を のようにLCAO型で表現する。ここでχkCikは、それぞれ基底関数と変分パラメータである。解くべき一電子方程式は以下のようになる。このときの基底関数としては原子軌道の数値解が用いられる。また、Xαポテンシャル(Vxa)のなかに電子密度の3乗根を含むため、行列要素は3次元の数値積分法を用いて計算する。行列表示をすると以下のようになる。

ここで、CiSはそれぞれ、係数ベクトルと重なり積分である。w(rs)は、乱数で生成したサンプル点rs上の体積要素の重みである。サンプル点の数は、通常基底関数の数の100倍以上となる。この行列要素の計算が、DVXα法において90%以上の計算時間を必要とする部分である。
DVXα法はhijSijをサンプルポイントrs上の各点に対する重み付きの累積加算として求めるので、行列要素生成部分の並列化は、並列化に際してサンプルポイントに関するループ(s=1,N)をプロセッサ数個の部分に分割し、その部分和の実行をプロセッサに振り分け、最後に収集するだけでよい。

ただし、原子軌道に関するデータなどを算出するのに必要なデータは、各プロセッサ上に常に置いておく必要がある。
並列処理手順の概略は以下のようになる。
  1. SCF反復の中で変化しない角度成分や重みは計算開始時にプロセッサに転送する。
  2. SCF反復の中で変化するポテンシャルや動径波動関数はホスト上で計算し、SCF反復ごとに各プロセッサに送られる。
  3. 各プロセッサ上でhijSijの部分和を求め、(例えば)0番目のプロセッサで総和を取り、積分されたhijSijをホストに転送する。このときホストとのデータ転送量は、基底関数の数の2乗のオーダとなる。
  4. ホスト上で固有値計算を行い、収束判定を行う。収束していれば計算終了。収束していなければ、電子の再分配を行い、2に戻る。
一般に並列計算機上のソフトウェア開発は複数のプロセッサが同時に動作するため、逐次計算機上にソフトウェアを開発する場合と比較してデバッグが難しい。そのため、まずホストCPUのみ使用するバージョンを作成し、その後、分散並列専用計算機に順次移植するという開発ステップでソフトウェアを開発した。これはホストCPUのみを使用した逐次版と分散並列専用計算機を使用した並列化版との結果が比較でき、また対ワークステーションでの高速化率が簡単に測定できる。
DVXα法の計算ステップをすべて並列化するのは得策ではない。例えば並列処理が向かない部分に並列処理を用いてしまうと計算速度があまり向上しないにも関わらず、かえってソフトウェア開発の難易度が高くなるということになってしまう。
そこで、次項に示すように単一プロセッサでは計算時間の97%以上が費やされる行列要素の生成部分を並列化した。ただし、データの初期化や行列の固有値計算等といった並列処理してもあまり効果のでないものはホストコンピュータを使用した。

4 DVXα専用分散並列計算機

新たに作成した専用計算機のハードウェア構成をFigure 2に示す。このシステムは、ネットワーク接続やI/Oその他の仕事をするホストボード:Sparc Station10(75MHz)と16枚のアクセラレータボードがVME-busで結合されたものであり、それぞれのアクセラレータボード上では16MBから64MBのローカルメモリを持つDSPのTI320C40プロセッサが4つ実装されている。合計64プロセッサの並列専用計算機である。ボード間のネットワークトポロジはハイパーリンクである。


Figure 2. System Configuration of Special Purpose Computer for DVXα

ホストとアクセラレータの役割分担に関しては、先に述べたようにアクセラレータはhijSijの算出のみ行い、原子軌道の算出や、行列計算の固有値計算、収束判定、電子の再分配はホストが行っている。Figure 3にボードの構成を示した。


Figure 3. Board Configuration of Special Purpose Computer for DVXα

ベンチマークテストとしてP型半導体の表面にH原子が吸着したものをモデル化した135原子からなるSi78B6H53クラスタを用いて計算時間を測定した。
ホストコンピュータとして使用しているSparc Station10(75MHz)だけで計算した場合と64プロセッサからなる分散並列専用計算機を使用した場合のSCF反復1回の計算時間をTable 1.に示す。

Table 1. Wall-Clock Time(sec.)

逐次計算ではサンプル点の増加に従い行列要素算出のステップの比率が大きくなっていることが分かる。計算結果に対して5桁程度の精度を出すためには1原子につきサンプル点として300点程度必要であるから、表中の32,768点が現実的な計算規模である。32,768点の計算をSparc Station単体で実行した場合には、処理時間の97%以上がhijSijの生成に費やされている。それに対し、分散並列専用計算機を使用すると、並列化効率が高いため、hijSij生成の処理時間が著しく減少し、対角化のコストが相対的に大きくなってきている。
行列要素算出のステップだけみると分散並列専用計算機により100倍以上の高速化が図られており、理論性能限界の64倍を超えたスーパーリニアスピードアップが観測されている。これは、並列化によってプロセッサ一台あたりの問題サイズが小さくなり、キャッシュミスなどのメモリアーキテクチャに起因するボトルネックが解消されたためである。

5 まとめ

DVXα法をオブジェクト指向プログラミング言語C++を用いて開発した。プログラムをオブジェクト指向化することにより、プログラミング効率だけでなくドキュメンテーションの問題もかなり改善できることがわかった。
また、DVXα法の持つ並列性を活かし、分散並列専用計算機で高速化することができた。DVXα法の並列処理は特にサンプルポイントの数が大きくなるほど効果が大きく、計算全体では64プロセッサで40倍程度の性能向上をみた。並列処理を行った行列要素算出のステップに限れば、100倍以上の高速化を実現し、スーパリニアスピードアップを観測した。
これをさらに発展させて、計算負荷の大きいオブジェクトのメソッドを抽出し、それを専用LSI化することによって高速化する試みに着手した。基盤となるシステムを共通化することにより様々な分野の専用LSIにも適合できるようなシステム構成を目指している。

本研究の一部は科学技術振興事業団平成8年度補正予算と平成9年度予算による独創的研究成果等育成事業「走査トンネル顕微鏡シミュレータの開発」および科学技術振興調整費 総合研究「科学技術計算専用ロジック組込み型プラットフォーム・アーキテクチャに関する研究」によるものである。また、研究環境を提供して頂いた慶應義塾大学先端科学技術研究センター、ご支援を頂いたソニー木原研究所会長木原信敏博士および福田安志氏、有用な御議論をいただいたMOE研究会、日本大学の里子允敏先生を始めとするCMSフォーラムのみなさまに深く感謝する。

参考文献

[ 1] Alsenoy, C.V., Yu, C.H., Peeters, A., Martin, J.M.L., and Schafer, L., J. Phys. Chem., 102, 2246-2251 (1998).
[ 2] Challacombe, M., and Schwegler, E., J. Chem. Phys., 106, 5526-5536 (1997).
[ 3] Mattson, T. G., Parallel computing in computational chemistry, ACS Symp. Series (1995).
[ 4] McWeeny, R., Method of molecular quantum mechanics, 2nd edition, Academics (1989).
[ 5] Sakuma, T., Kashiwagi, H., Takada, T., and Nakamura, H., Int. J. Quantum Chem., 61, 137-152 (1997).
[ 6] Deware, M. J. S., Zoebitsch, E. G., Healy, E. F., and Stewart, J. J. P., J. Am. Chem. Soc., 107, 3902 (1985).
Stewart, J. J. P., MOPAC93.00, Fujitsu Ltd., Tokyo, Japan (1993).
Available from Quantum Chemistry Program Exchange, University of Indiana, Bloomington, IN, USA
[ 7] 例えば、里子允敏、大西楢平、密度汎関数法とその応用、分子・クラスターの電子状態、講談社サイエンティフィック、(1994).
[ 8] 分子軌道計算関係では、サイエンティストパラダイツ社(http://www.spara.co.jp)やベストシステムズ社(http://www.bestsystems.co.jp)等が、分子軌道計算プログラムを並列化し、それを搭載したPCクラスタを製造販売している。
[ 9] 村上和彰, 小原 繁, 長嶋雲兵, 網崎孝志, 田辺和俊, 北尾 修, 北村一泰, 高島 一, 宮川宣明, 稲畑深二郎, 山田 想, CICSJ Bulletin, 16, 6-12 (1998).
[10] 小原 繁, 村上和彰, 長嶋雲兵, 網崎孝志, 田辺和俊, 北尾 修, 北村一泰, 高島 一, 宮川宣明, 稲畑深二郎, 山田 想, CICSJ Bulletin, 16, 2-5 (1998).
[11] 稲畑深二郎, 山田 想, 大澤 拓, 沖野晃一, 冨田裕人, 橋本浩二, 早川 潔, 宮川宣明, 村上和彰, 電子情報通信学会技術報告, ICD98-21, 77-84 (1998).
[12] http://kasuga.csce.kyushu-u.ac.jp/~moe/index_j.html
[13] Watanabe, S., Aono, M., and Tsukada, M., J. Vac. Sci. Technol. B, 12, 2167 (1994).
[14] Watanabe, S., Aono, M., and Tsukada, M., Phys. Rew. B, 44, 8330 (1991).
[15] Uchiyama, T. and Tsukada, M., J. Vac. Sci. Technol. B, 12, 2205 (1994).
[16] Uchiyama, T. and Tsukada, M., Surface Science, 313, 17 (1994).
[17] Kobayashi, K. and Tsukada, M., Phys. Rew. B, 49, 7660 (1994).
[18] CMSフォーラム: http://www-cms.phys.s.u-tokyo.ac.jp/~cms/
[19] Adachi, H., Tsukada, M., and Satoko, C., J. Phys. Soc. Jpn, 45, 875 (1978).
[20] Sato, F., Shigemitsu, Y., Okazaki, I., Yahiro, S., Fukue, M., Kozuru, S., and Kashiwagi, H., Int. J. Quantum Chem., 63, 245-256 (1997).


Return