


Figure 1. Parallelized program of two-electron integrals.
PCクラスターは、CPUにクロック周波数3.0GHzのIntel Pentium4(2次キャッシュ1024KB)を用い、8台で構成した。CPUを搭載した8台のマザーボードには、メインメモリとして各々1.0GBを備えた。また外部記憶装置として各々160GBのハードディスク(Ultra ATA 133, 7200rpm)を備え、各PCは1000BaseTのイーサーネットによりネットワーク接続した。オペレーティングシステムにはLinux kernel 2.6.9 (CentOS 4.4) [13]を使用し、並列処理を行うためのメッセージパッシングライブラリーはMPICH ver.1.2.7p1 [14]を用い、FORTRANコンパイラはIntel FORTRAN ver. 9.1 [15]を使用した。
計算対象とした分子は、種々の置換基により薬効に違いがあり、ドラッグデザインの対象として化学的にも興味が持たれる抗不安薬とした。具体的には、実際に市販されている薬剤分子でFigure 2に示したベンゾチアゾピン(BZP)系のフルトプラゼパム(1, C19H16ClFN2O)、トリアゾラム(2, C17H12Cl2N4)、フルタゾラム(3, C19H18ClFN2O3)、ロラゼパム(4, C15H10Cl2N2O2)、およびチエノジアゼピン(TZP)系のクロチアゼパム(5, C16H15ClN2OS)、エチゾラム(6, C17H16ClN4S)の各分子とした。チエノジアゼンピン系はベンゾジアゼピン系の骨格中のベンゼン環をチオフェン環へ置換したもので、一般的にはベンゾジアゼンピン系と同種の薬剤と見なされている。基底関数には3-21G基底[16]を使用した。計算時間の計測はSCF計算およびエネルギー勾配の一点計算を各10回行い、最も速い値を採用した。

Figure 2. Calculated minor tranquilizer molecules with benzodiazepin and thienodiazepin framework.
| # CPU | Acceleration ratio | wall | Acceleration ratio | |||||
|---|---|---|---|---|---|---|---|---|
| total | usr | sys | total | usr | sys | clock | of wall clock | |
| 1 | 445.9 | 257.3 | 188.6 | 1.00 | 1.00 | 1.00 | 2509.1 | 1.00 |
| 2 | 231.8 | 137.2 | 94.6 | 1.92 | 1.88 | 1.99 | 1430.3 | 1.75 |
| 3 | 158.1 | 95.9 | 62.2 | 2.82 | 2.68 | 3.03 | 1001.0 | 2.51 |
| 4 | 109.9 | 73.9 | 36.0 | 4.06 | 3.48 | 5.23 | 588.1 | 4.27 |
| 5 | 80.3 | 61.6 | 18.7 | 5.55 | 4.18 | 10.09 | 85.8 | 29.26 |
| 6 | 70.2 | 54.2 | 16.0 | 6.35 | 4.75 | 11.76 | 73.2 | 34.26 |
| 7 | 62.3 | 48.4 | 14.0 | 7.15 | 5.32 | 13.52 | 66.1 | 37.95 |
| 8 | 56.6 | 44.1 | 12.6 | 7.87 | 5.84 | 15.02 | 59.6 | 42.09 |
一方、実時間では、CPU数4まではCPU時間と同様にほぼ線形に加速率が増加するが、CPU数が5を超えると、CPU数5で29.3倍、CPU数8では42.1倍と、CPU数以上の大きな加速率、いわゆるスーパーリニアリティが得られた。また、実時間とCPU時間の差を比較すると、CPU数4までは、実時間がCPU時間の5.3倍程度と、CPU時間に対して実時間が大きくなるのに対し、CPU数5以上では、1.1倍程度でありCPU時間と実時間の差が少ないことがわかる。
このCPU数4と5の間を境にした大幅な実時間の短縮の理由は、CPU数4までは、計算した2電子積分のファイルをハードディスク上に記録してSCF計算の際に繰り返し読み出すために必要な時間が、CPU数5以上では事実上不要となることが考えられる。つまりPC台数の増加により、CPU数が増えるとともにメモリー容量が1台につき1GBずつ増加し、計算に用いる2電子積分のファイルが、全てLinuxオペレーティングシステムにより自動的にメモリー上にバッファーされるので、最初の1回以外はハードディスクの読み出しをする必要がなくなるためと考えられる。
また、CPU時間は、主に演算に使われるuser CPU (usr)時間と、通信パケット処理やファイル入出力処理などに使われるsystem CPU (sys)時間の和として算出されるが、そのうちsys時間がCPU数5以上では大幅に短縮されており、ファイル入出力処理が減少したことによると理解できる。
Table 2に計算した各分子についての並列度に対するCPU時間および実時間の計測結果を示す。フルトプラゼパムと同様に、トリアゾラムは、CPU数3と4の間で実時間の大きな加速率の違いがあり、フルタゾラムは、CPU数6と7の間、ロラゼパムは、CPU数2と3の間、クロチアゼパムは、CPU数2と3の間、エチゾラムは、CPU数3と4の間に実時間の大きな加速率の違いが見られることがわかる。Table 3に各分子の3-21G基底における2電子積分の保存に必要なメモリー容量を示す。トリアゾラムでは、2電子積分の必要容量は3.3GBであり、それを超えるCPU数4以上で実時間の大きな加速率の違いがある。またフルタゾラムでは、2電子積分の必要容量は6.0GBであり、充分なメモリー容量となるCPU数7以上で実時間が大きく加速されている。
Table 2. Comparison of the CPU time and the wall clock time by parallel processing.
| Molecule | Number of CPU | CPU time | Acceleration ratio of CPU time | Wall time | Acceleration ratio of wall time |
|---|---|---|---|---|---|
| Flutoprazepam (1) | 1 | 445.9 | 1.00 | 2509.1 | 1.00 |
| 2 | 231.8 | 1.92 | 1430.3 | 1.75 | |
| 3 | 158.1 | 2.82 | 1001.0 | 2.51 | |
| 4 | 109.9 | 4.06 | 588.1 | 4.27 | |
| 5 | 80.3 | 5.55 | 85.8 | 29.26 | |
| 6 | 70.2 | 6.35 | 73.2 | 34.26 | |
| 7 | 62.3 | 7.15 | 66.1 | 37.95 | |
| 8 | 56.6 | 7.87 | 59.6 | 42.09 | |
| Triazolam (2) | 1 | 614.1 | 1.00 | 1817.3 | 1.00 |
| 2 | 312.7 | 1.96 | 1007.3 | 1.80 | |
| 3 | 217.5 | 2.82 | 712.6 | 2.55 | |
| 4 | 147.0 | 4.18 | 150.4 | 12.08 | |
| 5 | 118.5 | 5.18 | 122.4 | 14.85 | |
| 6 | 105.3 | 5.83 | 107.7 | 16.87 | |
| 7 | 87.7 | 7.00 | 90.5 | 20.08 | |
| 8 | 78.6 | 7.82 | 81.2 | 22.38 | |
| Flutazolam (3) | 1 | 1220.1 | 1.00 | 3637.3 | 1.00 |
| 2 | 620.8 | 1.97 | 2066.8 | 1.76 | |
| 3 | 437.1 | 2.79 | 1416.9 | 2.57 | |
| 4 | 320.3 | 3.81 | 1093.1 | 3.33 | |
| 5 | 254.7 | 4.97 | 875.3 | 4.16 | |
| 6 | 217.2 | 5.62 | 589.5 | 6.17 | |
| 7 | 171.8 | 7.10 | 177.7 | 20.47 | |
| 8 | 154.1 | 7.92 | 158.0 | 23.02 | |
| Lorazepam (4) | 1 | 454.9 | 1.00 | 1471.9 | 1.00 |
| 2 | 231.2 | 1.97 | 816.3 | 1.80 | |
| 3 | 146.9 | 3.10 | 149.4 | 9.85 | |
| 4 | 108.2 | 4.20 | 110.3 | 13.34 | |
| 5 | 87.7 | 5.19 | 90.2 | 16.31 | |
| 6 | 77.6 | 5.86 | 80.1 | 18.38 | |
| 7 | 64.3 | 7.07 | 67.4 | 21.84 | |
| 8 | 58.2 | 7.81 | 60.5 | 24.33 | |
| Clotiazepam (5) | 1 | 567.5 | 1.00 | 1715.4 | 1.00 |
| 2 | 287.3 | 1.98 | 1015.6 | 1.69 | |
| 3 | 179.1 | 3.17 | 191.0 | 8.98 | |
| 4 | 134.2 | 4.23 | 137.2 | 12.51 | |
| 5 | 107.8 | 5.26 | 110.7 | 15.49 | |
| 6 | 94.5 | 6.01 | 96.9 | 17.71 | |
| 7 | 82.6 | 6.87 | 85.3 | 20.11 | |
| 8 | 72.2 | 7.86 | 74.6 | 22.98 | |
| Etizolam (6) | 1 | 663.6 | 1.00 | 1785.8 | 1.00 |
| 2 | 337.5 | 1.97 | 987.2 | 1.81 | |
| 3 | 238.2 | 2.79 | 705.4 | 2.53 | |
| 4 | 160.2 | 4.14 | 164.1 | 10.88 | |
| 5 | 129.9 | 5.11 | 133.2 | 13.41 | |
| 6 | 115.5 | 5.75 | 117.7 | 15.17 | |
| 7 | 95.1 | 6.98 | 98.5 | 18.13 | |
| 8 | 85.0 | 7.81 | 87.5 | 20.40 |
Table 3. The amount of memory requirement to store two-electron integrals.
| Molecule | Number of basis functions | Amount of two-electron integrals [Gbyte] | |
|---|---|---|---|
| 1 | Flutoprazepam | 248 | 4.2 |
| 2 | Triazolam | 239 | 3.3 |
| 3 | Flutazolam | 274 | 6.0 |
| 4 | Lorazepam | 217 | 2.5 |
| 5 | Clotiazepam | 227 | 2.9 |
| 6 | Etizolam | 245 | 3.7 |
このように2電子積分の計算に必要なメモリー容量に対して、システム全体のメモリー容量が充分に大きくなるCPU数となった時点で、実時間の大きな加速率の違いが生じることがわかる。このような効果はメモリー共有型ではない複数台の計算機を用いた並列化において特徴的なことである。対象とする分子軌道計算の2電子積分のファイルがメモリー上に保存可能となるまで台数を増加させるだけで大幅な実時間の短縮が実現すると考えられる。実時間を短縮するのに、プログラムを書き直す必要が無いのは大きな利点である。
一般の計算対象に対して、どの程度の台数を用意すれば良いのであろうか。効率良く構造最適化計算するのに必要なPCクラスターのシステム規模を知るため、上で述べた2電子積分ファイルのメモリーによるバッファー効果で高速化を実現するのに必要となるPCクラスターのCPU数をモデル計算により見積もることを試みた。モデル計算の対象としてポリアミノ酸であるグリシン多量体を選び、3-21G、6-31G、6-31G*および6-31G**基底での2電子積分数、2電子積分容量を計算した結果をTable 4に示す。グリシン多量体の構造は平面構造とし分子モデリングソフトであるChem3D[17]上で3次元構造を作成し、計算に用いる座標を生成した。
| Basis set | Number of glycine units | Number of atoms | Number of basis functions | Number of two-electron integrals | Amount of two-electelectron integrals [Gbyte] |
|---|---|---|---|---|---|
| 3-21G | 1 | 10 | 55 | 1,134,887 | 0.017 |
| 2 | 17 | 97 | 8,912,402 | 0.133 | |
| 3 | 24 | 139 | 27,134,606 | 0.404 | |
| 4 | 31 | 181 | 55,662,778 | 0.829 | |
| 5 | 38 | 223 | 93,693,022 | 1.396 | |
| 10 | 108 | 433 | 421,979,921 | 6.280 | |
| 15 | 143 | 643 | 970,985,023 | 14.469 | |
| 20 | 178 | 853 | 1,730,850,004 | 25.792 | |
| 6-31G | 1 | 10 | 55 | 1,166,240 | 0.017 |
| 2 | 17 | 97 | 9,677,055 | 0.144 | |
| 3 | 24 | 139 | 30,218,826 | 0.450 | |
| 4 | 31 | 181 | 62,344,115 | 0.929 | |
| 5 | 38 | 223 | 104,989,748 | 1.565 | |
| 10 | 108 | 433 | 469,559,975 | 6.997 | |
| 15 | 143 | 643 | 1,074,368,602 | 16.009 | |
| 20 | 178 | 853 | 1,907,382,337 | 28.422 | |
| 6-31G* | 1 | 10 | 85 | 6,566,148 | 0.098 |
| 2 | 17 | 151 | 53,738,996 | 0.801 | |
| 3 | 24 | 217 | 158,833,137 | 2.367 | |
| 4 | 31 | 283 | 316,826,445 | 4.721 | |
| 5 | 38 | 349 | 521,664,947 | 7.773 | |
| 10 | 108 | 679 | 2,226,896,410 | 33.183 | |
| 6-31G** | 1 | 10 | 100 | 12,338,225 | 0.184 |
| 2 | 17 | 175 | 89,982,488 | 1.341 | |
| 3 | 24 | 250 | 255,164,604 | 3.802 | |
| 4 | 31 | 325 | 499,632,739 | 7.445 | |
| 5 | 38 | 400 | 816,127,896 | 12.161 | |
| 10 | 108 | 775 | 3,430,410,263 | 51.117 |
グリシン数が1から10に増えるに従って、急速に2電子積分の量が増加しているのがわかる。
通常SCF計算では、2電子積分を一度計算した後、メモリー上またはハードディスクに保存し、繰り返し計算の中で読み出して再利用する。大きな分子を計算する場合、メモリー・ハードディスク容量の制限やディスク入出力による速度低下を防ぐため、2電子積分を保存せずに毎回計算するdirect SCF法が使われることが一般的である。しかしながら、並列処理においては、前述のとおり台数を確保することでメモリー容量を確保することができ、ほとんどの場合、2電子積分を保存する通常SCF計算を高速に処理することが可能となると考えられる。
グリシン10量体の場合、3-21Gでは433基底、6-31G**では775基底であり、各々の積分容量は、6.3GBおよび51.1GBである。これから2電子積分ファイルの読み書きについて、メモリー上へのバッファー効果が期待できるPCクラスター台数は、PC毎のメモリーを1GBとすると、各々7台、52台となる。なおTable 4より2電子積分数は、基底関数数Nの約3.1〜3.3乗に比例していることがわかるため、これを用いてあらかじめ必要台数を見積もることも可能となる。例えば3.3乗に比例すると仮定すると、433基底では7.5GB、775基底では51.0GBとなるため、各8台、52台となる。
高次元アルゴリズムによる大域的な構造最適化計算では、概ね1000回程度の繰り返し計算が必要であることから、例えばフルトプラゼパムの場合、並列化しないCPU数1では、仮に充分なメモリーを搭載し、CPU時間だけで処理できたとしても計算時間に 257.3秒×1000回 = 257300秒、71時間で、約3日間が必要であると見積もることができる。もしマザーボード上に搭載できるメモリーの制限などにより、充分なメモリーを準備できない場合には、約29日間が必要と見積もられる。今回構成したPCクラスターシステムでは、同じ計算についてCPU数8の場合で16.5時間と見積もることができる。以上のように大幅な計算時間の短縮が期待でき、並列処理の効果が特に大きいことがわかる。