計算のスケーリング

量子化学計算を行う際、当然系が大きくなるとそれだけ計算時間がかかるわけですが、系が倍になれば計算時間も倍かというと、そうはいきません。系のサイズN(通常基底関数の数や単位構造の数をとります)に対して、理論上の計算時間はHFは4乗、MP2は5乗、CCSD(T)は7乗に比例し(これをスケーリングといいます)、計算対象が大きくなると急激に計算時間が延びることが容易に理解できます。

このスケーリングを小さくし、系のサイズの1乗に比例する=リニアスケーリングに到達することが現代計算化学の目標とされているわけですが、そう簡単には到達しません。今使えるプログラムの各種理論モデルはどれくらいのスケーリングなのか、GAMESS(US)・PC GAMESS/Firefly・ORCA(とおまけでPRIRODA)の比較をしてみました。

条件設定

スケーリングは系のサイズと計算時間を両対数プロットすることで、直線の傾きとして得られます。計算対象としてポリチオフェン(チオフェン(n=1),ビチオフェン(n=2),クアテルチオフェン(n=4),オクチチオフェン(n=8))を選び、基底関数としてcc-pVDZまたはDef2-TZVPを選びました(PRIRODAではL1≒cc-pVDZを選択)。共通の理論モデルとしてHF,MP2,BLYP,B3LYPを、FireflyとORCAについてはTPSS,TPSShを選び、ORCAのみB2PLYPも入れました。全てのプログラムは同じPCで4スレッド並列で行いました(OS:Fedora 10,CPU:Core 2 Extreme QX9650)。計算時間はCPU時間ではなく、実際にI/O待ち等含めて計算に要した時間です。

結果

まずはHF/cc-pVDZから。
※凡例のカッコ内の値がスケーリング(計算時間がnの何乗に比例するか)ですrhf-ccd

GAMESSとFireflyはほぼ同じで、Fireflyの方が計算時間は1/3で済んでいます。ORCAは計算時間の延びが緩やかで、さらに大きいスケールではFireflyより計算時間が短くなると予想されます。PRIRODAは小さい分子で計算時間が短いですが、系が大きくなると急激に計算時間が延び、そのスケールは他の3プログラムよりかなり大きくなっています。

次にMP2/cc-pVDZ。
mp2-ccd

HFとほぼ同じ傾向で、ORCAの効率の良さがより際立つ結果になっていますが、これはORCAのRI近似が非常に効いています。

今度はpure-DFTのBLYP/cc-pVDZ。
blyp-ccd

GAMESSとFireflyが平行なのは変わりませんが、Fireflyの方が7倍速いです。またそれよりも更にORCAとPRIRODAが高速かつスケーリングも小さくなっています。ORCAはRI、PRIRODAはDensity Fittingによって(わずかに精度を犠牲にして)高速化を達成しています。

4プログラム共通は最後、hybrid-DFTのB3LYP/cc-pVDZ。
b3lyp-ccd

GAMESSとFireflyの関係はBLYPと全く変わりません。ORCAのみ2以下のスケーリングを保っていますが、これはHF部分のRIJCOSXが効いていて、HFの時と同様より大きな系ではFireflyより高速になりそうです。

次のグラフはGAMESSとORCAの比較で、meta DFTのTPSS、hybrid meta DFTのTPSSh、double hybrid DFTのB2PLYP(これはORCAのみ)です。
metadhdf-ccd

ORCAが非常に高速であることをはっきり示しています。B2PLYPはMP2計算が含まれているにも関わらず、GAMESSのDFTと同等のスケーリングになっています。

最後に、より大きな基底関数を使って負荷をかけた場合の結果を、FireflyとORCAの比較で示します(GAMESSとPRIRODAはメモリや計算時間の問題で断念)。
fvso-tzvp1
fvso-tzvp2

HFやDFTの項で「大きな系ではFireflyよりORCAが高速になりそう」と書きましたが、このグラフはまさにそうなっています。オクチチオフェン(n=8)では基底関数の数が1500程度になりますが、ORCAのBLYPでは7分で1点計算を終えることができます。構造最適化も数時間でできるレベルです。

まとめ

こうして全体を眺めてみると、理論値よりかなりスケールダウンされていることがわかります。特にpure-DFTは顕著で、ORCAやPRIRODAでの計算はリニアスケールに近くなっており、大きな分子の構造最適化や振動解析が実用的な時間でできそうです。
個人的にGAMESSは遅いなぁと思っていたのですが(笑)、スケーリングはFireflyとほとんど変わらないのが驚きでした。Fireflyは計算速度に重点を置いて開発されているだけあって、GAMESSと比べて全てにおいて高速です。GAMESSでないとできない計算でなければ、Fireflyを使った方が環境にもやさしそうです。
総合的にはORCAが全ての理論モデルについて優れていると言えます。特に大きい系においてはこの選択は揺るぎなさそうです。

Be the first to comment

Leave a Reply