PCクラスターを用いたab initio結晶軌道法の並列処理

寺前 裕之, 大田原 一成


Return

1 はじめに

Ab initio結晶軌道法による一次元ポリマーのエネルギーバンド計算はab initio分子軌道法の無限系への自然な拡張であり、過去にポリアセチレンなどの導電性高分子の電子状態研究において、異性体間の熱力学的安定性や振動数解析などでその有用性が示された[1 - 3]。ただしab initio分子軌道法では、計算すべき二電子積分の数は基底関数の数nの4乗にのみ比例するが、ab initio結晶軌道法では、nの4乗だけではなく考慮する隣接セル数Nの3乗にも比例し、N3n4に比例することになる。このことからわかるようにCPU占有時間およびファイルの入出力共に非常に大規模な計算となる。そのため単位セルが小さなポリマー以外の計算はあまりなされていないのが現状である。
そこで我々は、この一連の論文の第一報、第二報において、一次元ポリマーのエネルギーバンド計算の並列化を試み、CPU占有時間に関しては16並列時に約10倍程度の性能が得られる事を示し、並列化がエネルギーバンド計算において大変有効である事を示した[4, 5]。ただしこれらの研究においては、実際に多数のCPUを使用した計算機環境を得る事ができなかったために2CPUまたは4CPUによるシミュレーションに止まり、CPU占有時間以上に重要である実時間の短縮に関してのデータは不十分なままであった。
前報[5]では、大規模なポリマーのエネルギーバンド計算としてpoly-(para-phenylene sulfide)ポリマーについて実際の計算にかかった実時間を比較した。IBM社製のワークステーションRS6000/590を10BaseTイーサネットを介してネットワーク接続し計算に必要であった実時間が計測された。その結果、実時間に関しては、ネットワークの構造や各CPUの接続形態など、また計算時のネットワークの混雑の程度など、多くの因子が関係する事が示唆された。同一のハブに2台のWSを収容した場合には、実時間が1.74倍に加速されたが、別のサブネットにある2台で実行した場合には、途中のネットワークの状況などに大きく依存するようになり、ほとんど実時間の減少に結び付かない場合があることもわかった。
従って、計算機クラスターを用いた計算には同一のハブに接続するなどの専用のクラスターシステムとしてデザインする必要があると考えられる。ただしワークステーション(WS)クラスターでCPUを10-20台の単位で専用に確保することは以前と比べて価格が下がってきたとは言え、コスト的に見て難しい。一方で比較的安価なIntel製CPUを使用したパーソナルコンピューター(PC)は近年の性能向上がめざましく、WSとの差が縮小してきた。例えば Pentium II 450MHz のLinpack実測値(n=100)では浮動小数点演算速度は最高約90Mflopsにも達し、やや古いモデルとの比較ではあるがRS6000/590の35MflopsやCray T932の単一CPUでの90Mflopsと比較してもむしろ高速な値となっている。また近年、LinuxやFreeBSDのようなPCで動作するフリーなUnixが普及しはじめたため、PCを事実上WSのように使用する事が可能になり、WSから最小限のプログラム書き換えでPCへの移行が行えるようになった。PCクラスターは分子軌道計算プログラムGaussian 98の実行においても有効であることが知られている[6]。
そこで本研究では、Intel製CPU使用のパーソナルコンピューター(PC)とフリーなUNIXであるFreeBSDを使用したPCクラスターによって並列計算専用の環境の構築を行ったので報告する。

2 並列計算環境の構築

本研究を計画した2000年当時では、Intel社製440BXチップセットによるマザーボード及びPentium IIIプロセサが主流であった。最高速CPUはPentium IIIの600MHzであったが、CPUとしては対価格性能比も考慮してPentium IIIの450MHzを採用した。マザーボードは前報でも使用したDual CPUマザーボード、ASUS社製のP2B-Dを使用し、8筐体で16CPUの構成とした。Figure 1にここで構築したシステムの外観を示した。デュアルCPUマザーボードを使用したのは主として設置スペースの問題からである。なお当初搭載されていたBIOSではデュアルCPUでの使用時に障害があったために、アップデートユーティリティを使用してBXD112B.AWDにバージョンアップを行った[7]。ディスプレイ・キーボード・マウスはそれぞれ4ポートの切り替えスイッチを使用した。カスケード接続により各1台とすることも可能であったが、メンテナンスの容易さも考慮して各2台とした。


Figure 1. PCクラスターシステムの外観

当時はメモリーも未だ高価であったため、一筐体当り256メガバイトとした。またハードディスクは一筐体当り12ギガバイトのIDE接続の物を使用した。CD-ROMドライブおよびフロッピーディスクドライブは省略しても差し支えないが、OSインストールの容易性から今回は装備した。ファストイーサネット(100BaseT)のカード及び8ポートのスイッチングハブを使用して各PC間では比較的高速な通信ができるようにネットワーク接続した。
オペレーティングシステムは、FreeBSD 3.2-RELEASEを使用した[8]。デュアルCPU用にカーネルにSMPオプションを付加して再コンパイルを行った。並列計算を行なうためのライブラリとしては、MPI(Message Passing Interface)の実装の一つであるLAM(Local Area Multicomputer) version6.2b[9]を用いた。Fortranコンパイラーはegcs-1.1.2のg77を使用した[10]。

3 計算方法

ポリマーのエネルギーバンドの計算理論については文献に詳しいので並列計算に必要な部分のみの記述にとどめる[1 - 3]。一次元ポリマーの計算理論である結晶軌道法は有限の分子系における分子軌道法を無限系のバンド計算に拡張したものである。
Hartree-Fock方程式は、

である。Frs( k ), Hrs( k ), Srs( k )は、kをあらわに含まない実空間での各行列要素のフーリエ変換で表すことができて、

ここで、

これらの関係式からユニットセル当りの全エネルギーは、

ここで、n は基底関数の数をNは考慮する隣接セル数を表す。式(7)より容易にわかるように、二電子積分の数はN3n4に比例する。Fockの行列要素を計算するのに必要な電子密度行列は結晶軌道の係数Ctn( k )から計算されるが、結晶軌道の係数は変分方程式を解かないと得ることができない。従って、分子軌道計算の場合と全く同様にSCF計算が必要である。
Figure 2に示したように、二電子積分および二電子積分の核座標に関する微分の計算において隣接セル数であるNおよび基底関数の数nを用いた並列化が行えるため通常の分子軌道計算に比べて処理の一層の分散が図れ得る。二電子積分および二電子積分の核座標に関する微分が計算の全体に占める割合はテストに用いたpoly-tetrafluoro-ethyleneで約75%であるが、結果としてSCF計算部分も並列処理されるため、並列化される計算量は90%以上になる。

      ...
      icount=0
      DO J= 0,N
        DO K=-N+J,N
          DO L=-N+J,N
            DO R=1,n
              DO S=1,n
                DO T=1,n
                  DO U=1,n
                  icount=icount+1
                  if(mod(icount,nproc).eq.me) then
                     Calculate \ltR(0)S(J)|T(K)U(L)>
                        or     \ltR'(0)S(J)|T(K)U(L)>
                  endif
                 ENDDO
                ENDDO
              ENDDO
            ENDDO
          ENDDO
        ENDDO
      ENDDO
      ...
Figure 2. 二電子積分およびその微分の並列計算の概要


Figure 3. Poly-(para-phenylene sulfide)の構造、破線内がユニットセル

速度比較のために前報と同様にpoly-tetrafluoro-ethylene (C2F4)x を対象に選んだ。基底関数系はSTO-3G基底関数系[11]を用いた(n = 30)。隣接セル数Nは5として、二電子積分のカットオフ法にはNamur cutoff法を用いた[12]。さらに大規模な計算としてpoly-(para-phenylene sulfide) (C6H4SC6H4S)xを対象に選んだ。基底関数系は3-21G基底関数系[13]を使用し(n = 150)、隣接セル数Nは3、二電子積分のカットオフ法にはcell wise法を用いた[12]。波数ベクトルのサンプリングは前者は41点後者は21点で行ない、Simpsonの公式を用いて電子密度の積分を行なった[14]。Figure 3にpoly-(para-phenylene sulfide)の構造を示した。交互に90度傾いたベンゼン環が硫黄原子を挟んで連なった構造をしており、電導性があることで知られている[15]。計算時間の計測については各10回行い最速値をとった。

4 結果と考察

Table 1にpoly-tetrafluoro-ethylene (C2F4)xの計算において計測されたCPU占有時間および実経過時間(各々秒単位)を示す。CPU数が4CPUまでは順調にCPU時間と同様に実時間も加速されていくことがわかり、CPU時間のみならず実時間の減少にも並列化は大きな効果があることがわかる。8CPU程度でやや実時間の加速がCPU時間と解離し始め、8CPUから16CPUでは6.27倍が6.96倍と僅かな増加にとどまり、CPU数が増加した効果がほとんど得られていない事がわかる。これは現在のシステムがデュアルCPUマザーボードを使用しているために、ハードディスクやネットワーク通信の入出力が8CPUまでは独立だが16CPUでは各筐体で2CPUが共用する形になっているのが影響していると考えられる。同一マザーボード上のCPU間では共有メモリーを介して通信が行われるため、各々の効果が相殺されるのを期待していたが外部への入出力の負荷の方が高いようである。

Table 1. Poly-tetrafluoro-ethyleneの並列計算の速度比較。8CPUまでは各PCで1CPUに限定。
CPU数CPU時間(秒)CPU時間加速率実時間(秒)実時間加速率
1182.81.00197.01.00
293.91.95102.81.92
445.93.9851.63.82
824.47.4931.46.27
1615.811.6028.36.96

それを確かめるために、同一マザーボード上の2CPUを同時に使用するように設定して計測した結果をTable 2に示す。ここで例えば4CPUの場合は2台のPCにある4CPUを使用している。Table 1では、4CPUの場合は4台のPCを使用して計測した。CPU数が2の場合のみ加速率が理論最高値である2倍以上になっているが、これは同一マザーボード上にCPUがありSMP構成として動作しているため、CPU間の通信もメモリーのみを介して行われるなど、並列化によるオーバーヘッドがほとんど生じない上に、カーネルの動作も多少は異なってくるためと思われる。また時間計測のルーチンの誤差も考えられる。

Table 2. Poly-tetrafluoro-ethyleneの並列計算の速度比較。2CPU以上では各PCで2CPU使用。
CPU数CPU時間(秒) CPU時間加速率実時間(秒)実時間加速率
1182.81.00197.01.00
288.82.0697.02.03
451.33.5657.93.40
828.46.4434.25.76
1615.811.6028.36.96

CPU数が4または8の場合は、同じマザーボード上のCPUを使用しなかったTable 1に比べて明らかにCPU時間・実時間共に増加しており加速率は落ちている。従って、Table 1における16CPU使用時にパフォーマンスが上がらなかったのは、デュアルCPUマザーボードの使用が原因であったと考えられよう。共有メモリー型の計算機をさらにクラスター構成とするのは避けるべきと思われる。現在ではラックマウントタイプの筐体のPCが発売されているため、省スペースを目的としてデュアルCPUマザーボードを使用する必要性も薄れてきていることを付け加えておく。
Table 3にpoly-(para-phenylene sulfide) (C6H4SC6H4S)xの計算において計測されたCPU占有時間および実経過時間(各々秒単位)を示す。CPU数が2および4まででは、CPU時間・実時間共に順調に加速されており計算のみならずファイルの入出力も自然に並列化されており、実時間はCPU時間の約3倍程度となっている事がわかる。これはローカルにハードディスクやメモリーを持つクラスター型の並列計算機に特徴的なことで、共有メモリー型や高速なスカラー計算機においてはCPU時間の短縮と実時間の短縮は必ずしも一致しない。特にスカラー計算機で高速なCPUに取り替えてもハードディスクが遅いため実時間の短縮に至らないという事はよくある事例である。

Table 3. Poly-(para-phenylene sulfide)の並列計算の速度比較
CPU数CPU時間(秒)CPU時間加速率実時間(秒)実時間加速率
15330.71.0015341.01.00
22741.51.947787.91.97
41477.33.614088.43.75
8641.68.31784.819.55
16462.211.53764.220.07

CPU数が8になったところで、CPU時間・実時間共に非連続的に加速されている事がわかる。特に実時間は8CPU時に約20倍という加速率が得られている。これは二電子積分のファイル容量が約2ギガバイトで、一台あたり256メガバイトのメモリーを搭載しているため、ちょうど8台使用時に全てがメモリー上にバッファーされファイル入出力がほぼ無くなったためと考えられる。OSとしてUNIXを使用する事により、有効にメモリーが使用され、プログラムの書き換え無しに実時間の減少に結び付いたことがわかる。また8CPU使用時にはCPU時間も加速率は理論値である8倍より大きくなっているが、これもファイル入出力に関するオーバーヘッドが無くなったためと考えられる。この例でも、8CPU使用時から16CPU使用時への実時間の短縮はCPU使用時間の短縮に比べて残念ながら小さい。前に述べたのと同じ事情に依ると思われる。なお、Table 1Table 2のpoly-tetrafluoro-ethyleneの計算ではファイルが小さいため、最初から全てのファイルがメモリー上にバッファーされている事を付け加えておく。
以上のようにCPU使用時間のみならず実時間の減少という点でも並列処理が有効であることが示された。

5 結論

本研究ではPentium IIIデュアルCPU仕様のマザーボードを使用したパーソナルコンピューター8台(CPU数は16)からなるPCを100BaseTイーサネット・スイッチングハブを使用してクラスター構成としたものを並列計算機として、一次元ポリマーのエネルギーバンド計算の並列処理計算を行った。CPU時間ではなく、より重要な実時間がどの程度短縮されるかを計測するのを目的とした。
Poly-tetrafluoro-ethylene (C2F4)xの計算では8CPU使用時で実時間が6.27倍に加速された。ただし16CPU使用時には6.96倍に止まった。デュアルCPUマザーボードを使用したためI/O待ちや通信待ちが生じたためと思われる。
Poly-(para-phenylene sulfide) (C6H4SC6H4S)xの計算ではクラスター全体のメモリーに二電子積分を全て置く事が可能となったために、8CPU使用時に約20倍という実時間の高速化が達成され、実時間の短縮という面においても並列処理は非常に有効であることがわかった。
今後はさらに多数のPCを用いて並列処理を行った場合に、どの程度までの実時間の短縮につながるかは興味深いが多数つなぐとネットワーク待ち時間が増大する問題が出てくる。そうなると1000BaseTやミリネットのようなより高速な通信インターフェースが必要かどうかが興味深く、今後の課題であろう。また本研究を行った時点に比べてメモリーの価格が下落してきているため、なるべく多くのメモリーを搭載することにより、本研究で述べたような実時間の短縮がより低い並列度でも可能となると予想され興味深い。

参考文献

[ 1] M. Kertesz, Adv. Quantum Chem., 15, 161 (1982).
[ 2] P. Otto, E. Clementi, and J. Ladik, J. Chem. Phys., 78, 4547 (1983).
[ 3] H. Teramae, J. Chem. Phys., 85, 990 (1986).
[ 4] H. Teramae, J. Chem. Software, 4, 73 (1998).
[ 5] H. Teramae, J. Chem. Software, 6, 75 (2000).
[ 6] 坂本 章, 北嶋 一欽, 田隅 三生, CACS FORUM, 20, 135 (2000).
[ 7] BIOSアップデートユーティリティ並びにデータは http://www.asus.com.tw/ よりダウンロードした。
[ 8] http://www.freebsd.org/
[ 9] Gregory D. Burns, Raja B. Daoud, James R. Vaigl,Supercomputing Symposium '94 (Toronto, Canada, June 1994);Greg Burns, Raja Daoud, MPI Developers Conference, University of Notre Dame (June 1995)
[10] http://gcc.gnu.org/
ftp://go.cygnus.com/pub/ftp.cygnus.com/egcs/releases/egcs-1.1.2/
[11] W. J. Hehre, R. Ditchfield, R. F. Stewart, and J. A. Pople, J. Chem. Phys., 52, 2769 (1970).
[12] H. Teramae, Theoret. Chim. Acta, 94, 311 (1996).
[13] J. S. Binkley, J. A. Pople, W. J. Hehre, J. Am. Chem. Soc., 102, 939 (1980).
M. S. Gordon, J. S. Binkley, J. A. Pople, W. J. Pietro, W. J. Hehre, J. Am. Chem. Soc., 106, 2797 (1984).
[14] P. J. Davis and P. Rabinowitz, Method of Numerical Integration, Academic Press, New York (1975), p.45.
[15] M. Knupfer, J. Fink, E. Zojer, G. Leising, U. Scherf, K. Mullen, Phys. Rev., B57, 4202 (1998).


Return