一次元ポリマーのエネルギーバンド計算における並列処理

寺前 裕之


Return

1 はじめに

 一次元ポリマーに関する非経験的結晶軌道法による計算はポリアセチレンなど の導電性高分子の電子状態研究でその有効性が示されたが、CPU占有時間およびファ イルの入出力共に非常に大規模な計算となるため、いくつかの単位セルが小さ なポリマー以外の計算はあまりなされていない[1-4]。
 近年、単一CPUでのコンピューターの処理能力も限界に近くなりつつあり、スー パーコンピューター(SC)やワークステーション(WS)も以前ほどの短期間での飛 躍的な性能向上は見込めなくなってきた。そこで、現在では複数のCPUを装備 した並列処理システムを用いて並列計算を行なうのが大規模計算では主流にな りつつあり、SCやWSもクラスター構成ないしは並列型の構成が主流となりつつ ある。またポリマー計算のように大容量のファイル入出力を伴う場合にはこの ファイル入出力待ち時間も大きくなるため並列化することが望ましい。しかし、 WSレベルにおいてもCPUを20-30台の単位で確保することは以前と比べて価格が 下がってきたとは言え、コスト的に見て難しい。
 一方で比較的安価なパーソナルコンピューター(PC)は近年の性 能向上がめざましく、WSとの差が縮小してきた。例えば Pentium-Pro 150MHz のLinpack実測値(n=100)では浮動小数点演算速度は最高約30Mflopsにも達し、 RS6000/590 の35MflopsやCray T932の単一CPUでの90Mflopsと比較しても遜色 がない値となっている。ただし、loop長が1000の場合には最速値で約11Mflops に低下してしまい、RS6000/590の50MflopsやCray T932 の450Mflopsには及ば ない値となる。また近年PC上で利用できるLINUXやFreeBSDなどのUNIXが普及し、 ethernet用の拡張ボード類も安価に入手可能であるので、PCにUNIXとnetwork boardを追加することで、WS形態での利用も可能になってきた。またWSと違い 台数を確保するのも比較的容易と考えられる。
 本研究では一次元ポリマーのエネルギーバンド計算プログラムをソケット通信 を用いたTCGMSGを利用して並列計算用に書き直しパフォーマンスの計測など を行なった。SCとして、Cray社の T932、WSとして IBM社 RS6000/590 4台からなるクラスターを使用し、CPU としてそれぞれ Pentium 133MHz/166MHz (P5-133, P5-166), Pentium-Pro 150MHz/200MHz (P6-150, P6-200) を使用し、OSとして FreeBSD 2.2.2R を使用した PC 4台で構成されるPCクラスターとの速度比較を行なった。

2 計算方法

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

(1)

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

(2)
(3)
(4)

ここで、

(5)
(6)
(7)
(8)

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

(9)

ここで、n は基底関数の数をNは考慮する隣接セル数を表す。 式(7)より容易にわかるように、二電子積分の数はN3n4に比例する。 Fockの行列要素を計算するのに必要な電子密度行列は結晶軌道の係 数$ Ctn(k)から計算されるが、結晶軌道の係数は変分方程式 を解かないと得ることができない。従って、分子軌道計算の場合と全く同様 にSCF計算が必要である。

      ...
      ncb=0
      DO J= 0,N
        DO K=-N+J,N
          DO L=-N+J,N
            ncb=ncb+1
            if(mod(ncb,nproc).eq.me) then
            DO R=1,n
              DO S=1,n
                DO T=1,n
                  DO U=1,n
                    Calculate 
                       or     
                  ENDOO
                ENDOO
              ENDOO
            ENDOO
          endif
          ENDOO
        ENDOO
      ENDOO
      ...
(a)二電子積分およびその微分の並列化
      ...
      DO K=1,KPOINT
      if(mod(K,nproc).eq.me) then
      calculate F(K)
      diagonalize F(K)
      calculate P(K)
      endif
      ENDDO
      call dgop(type+msgdbl,density,KPOINT*n*n,'+')
      ...
(b)波数ベクトルを伴う部分の並列化

図1 並列計算の概要

二電子積分および二電子積分の核座標に関する微分の計算を隣接セル数である Nを用いた並列化ならびにバンド計算において特徴的な波数ベクトル k に関する計算についての並列化を行なった。(式(1)-(4), (8))図1に並列化の 概要を示す。なお二電子積分の並列化のアルゴリズムは分子軌道法において使 われているものと同様であるが、単位セルの番号を用いて並列化を行なってい る点が異なる。 並列計算を行なうためのライブラリとしては、TCGMSGライブラリ[5] を用いて各プロセス間のソケット通信を行なった。
 速度比較のためにpoly-tetrafluoro-ethylene (C2F4)x を対象に選 んだ。基底関数はSTO-3G[7]を用いた。(n=30) 隣接セル数Nは5とし て、二電子積分のカットオフ法にはNamur Cutoff 法を用いた[8] 波数ベクトルのサンプリングは41点で行ない、Simpsonの公式を用いて式(8)の 積分を行なった[6]

3 結果と考察

 表1に計測されたCPU占有時間(秒単位)を示す。

表1 Poly-tetrafluoro-ethyleneの並列計算の速度比較〈秒)
プロセス数 時間(秒)a 加速率 時間(秒)b 加速率
Cray T932
1 544.7 1.00 544.7 1.00
2 282.5 1.93 291.2 1.87
4 147.7 3.69 163.6 3.32
8 88.9 6.13 108.3 5.02
16 60.8 8.96 80.4 6.77
RS6000/590 cluster
1 342.8 1.00 342.8 1.00
2 182.8 1.88 195.8 1.75
4 88.2 3.89 107.9 3.18
8 52.9 6.48 76.3 4.49
16 37.1 9.24 62.6 5.47
PC-cluster
1 794.4 1.00 794.4 1.00
2 492.0 1.61 556.2 1.42
4 301.7 2.63 468.2 1.69
8 154.6 5.14 337.1 2.35
16 139.3 5.70 301.2 2.63
a k並列化を含む
b k並列化を含まない

二電子積分と波数ベクトルの両 方を並列化したものと、波数ベクトルについては並列化を行なわなかった物の 双方について示した。ここで並列計算におけるCPU占有時間は並列計算時に最 もCPU時間を消費したプロセスのCPU時間である。速度の計測は各10回行ない、 最速値をとった。WSおよびPCクラスターはそれぞ れ4CPUしか持たないため、各CPUについて1、2、または4プロセスずつ発生 させて、それぞれ4、8、16 並列計算の値をシュミレートした。ただし同一CPU 上のプロセス間通信ではセマフォを用いた共有メモリーが使用されるので、純 粋に8CPU、16CPUでソケット通信のみを使用した場合に比べて速度的に有利に なっている可能性は残る。なお、Cray T932は32CPUを持ち原理的には32並列ま で可能であるが、センター共用マシンであり運用上のメモリー確保の関係から 16並列以上の計算が今回は不可能であった。
 ここで加速率を1CPU使用時のCPU占有時間を並列計算時のCPU時間で除算したも のとして定義すると、SCならびにWSでは、4プロセスまではほぼ直線的に加速 されて、1CPU使用時の3.69倍ならびに3.89倍と理論値4にかなり近い値が得ら れていることがわかる。これに対して、PCクラスターでは速度の違うCPUを用 いているため最も遅いCPUが律速となり見かけ上の加速率は小さくなるものの、 4プロセスで2.63倍となり、並列計算を行なうことによりSCやWSを単一で用い た場合の性能を上回っていることがわかる。またPCクラスター8プロセス時の CPU時間を見てみるとCrayのほぼ4CPU、RS6000/590クラスターの3CPUと同等の 性能が得られている。ただし、PCクラスターでは8プロセスから16プロセスへ プロセス数を増加させても5.14倍から5.70倍とわずかな速度の向上にとどまっ ている。
 次にCray T932およびRS6000/590クラスターでは並列度が8または16になった場 合には4までの場合に比べて加速率が上がらなくなり、並列度8の場合で6--6.5 倍程度、並列度16の場合で約9倍程度に留まっている。図2に並列度16の場合の 各ノードでのCPU占有時間を示した。これから容易にわかる


図2 16ノード並列計算時の各CPU使用時間

ように、並列度が上がるにつれて、各ノードへの計算の効率的な分散がうまく いかなくなっている。特にノード12、14はほとんど使用されていないことがわ かる。さらにPCクラスターでは最も計算速度の速いP6-200 CPUがノード12--15 に割り当てられており、並列度8と16の場合でほとんど速度の向上が見られな かった原因であると考えられる。今後はさらに各CPUへの負荷分散がより平均 化されるような並列化の方法を検討する必要があろう。
 波数ベクトルに関する並列化の効果は並列度が上がると相対的にかなり大きく なり、16並列計算時には、最も効果が少ないCray T932の場合でも80.4秒から 60.8秒と約30\%の節約になっていることが表1からわかる。WSクラスターにお いても、62.6秒から37.1秒と約40\%節約されている。特にPCクラスターの場合 は対角化およびそれに伴う行列の演算が特に遅いためと思われるが[9]、 CPU時間が301.2秒から139.3秒と半分以下に減少している。 逆にいうと、このようにベクトル長の短い計算においてはPCクラスターによ る並列計算は特に有効であることがわかる。波数ベクトルのサンプリング点は 多ければ多いほど正確になるため、例えばCPU数の倍数になるようにサンプリ ングを行なうような方法を用いる事で高精度高能率な並列処理がPCクラスター 上で行なえる事が期待できる。
 ファイルの並列入出力は今回行なった方法によれば自然に行なわれる。1CPUで の実行時には32MBあったファイルが例えば16並列処理では最大のファイルサイ ズが約3.6MBになりファイルアクセス時間はCPU使用時間と同等に分散されてい ることがわかる。この事実は入出力速度が遅いPCクラスターの場合特に重要で ある。また今回は試みなかったが、PCクラスターにおいてはメモリーを増設す るのが価格面からSCやWSに比べてはるかに容易であり、かなりの大きさのポリ マーまで全ての積分をメモリーに保存することもある程度の台数が確保できる ならば可能である。今後の検討課題であろう。
 PCクラスターに関して、P5CPUについてはあまり問題がないが、P6CPUはちょっ としたプログラミングによって大きく計算速度が変わる場合がある。例えば、 Linpackベンチマークでループ数100配列数201では10Mflops程度の速度である が配列数200であると30Mflops程度まで速度が向上する。ループ数を101として 計算してみると、配列数101だと9Mflops程度まで速度が低下してしまう。ルー プ数101配列数を102とすると15Mflopsまで回復する。このようにちょっとした プログラムの差により、キャッシュメモリーの制御の関係と思われるが、大 きく計算速度が変わるようである。本研究においても、例えば積分のプログラ ムの手直しにより全く関係が無いと思われる、SCFの部分の計算時間が1.5倍程 度の範囲内で上下した。PCクラスターで最高のパフォーマンスを得るためには 今後さらにプログラム全体の検討が必要と思われる。

まとめ

 一次元ポリマーの非経験的バンド計算の並列処理について、PCクラスター、WS クラスターならびにスーパーコンピューターを用いてモデルポリマーの計算時 間についての検討した。
 意外にも単一CPUでの計算においても、SCはそれほどの速度が得られずWSが最 速となる結果が得られた。主な原因としては例とした計算が大きな配列を必要 とせず、SCのメリットが生かされなかったと考えられるが、これについては詳 しい解析が必要であり今後の検討を要する。またPC(P6-200)では予想以上の速 度が得られているが、計算の規模等からキャッシュメモリー上でうまく処理さ れたのではないかと考えられる。そのため常にこのような速度が期待できるか どうかについてはさらに検討する必要がある。

 謝辞 本研究を行なうにあたり、お世話になりましたお茶の水女子大学 の長嶋雲兵教授に深く感謝いたします。

参考文献

[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 and K. Takeda, J. Am. Chem. Soc. 111, 1281 (1989).
[5] R. J. Harrison, TCGMSG ver. 4.04, Battelle Pacific Northwest Laboratory (1994); R. J. Harrison, Int. J. Quantum Chem., 40, 847 (1991)
[6] P. J. Davis and P. Rabinowitz, Method of Numerical Integration (Academic Press, New York, 1975), p. 45.
[7] W. J. Hehre, R. Ditchfield, R. F. Stewart, and J. A. Pople, J. Chem. Phys. 52, 2769 (1970).
[8] H. Teramae, Theoret. Chim. Acta 94, 311 (1996).
[9] 日向寺祥子、長嶋雲兵、青柳睦、佐藤三久、関口智嗣、桐山博史、細矢治夫、 IPSJ SIG Notes, Vol. 94, 94-HPC-52, 19 (1994).
Return