昨日、PC GAMESSの新しいテスト版7.0.4が登録ユーザー向けにリリースされました。7.0.3から組み込まれた並列化PCMとO汎関数に興味があるところで、まずはPCM計算の並列化について早速簡単なテストをしてみました。
計算内容は、フルフラール(フラン-2-カルボアルデヒド)のs-trans配座をPCM法(THF中)を用いて計算するもので、HF/6-31G(d)による構造最適化とB3LYP1/6-31G(d)によるシングルポイント。
どちらの計算にも、入力座標にはMOPAC2007(PM6)で最適化した構造を用いました。結果は以下の通り。(計算時間値はWall Clock Time)
a. Geometry Optimization (RHF/6-31G(d))
v.7.0.0
sequential : 899.1 sec (Nstep=23)
v.7.0.4
sequential : 899.7 sec (Nstep=23) [0.999倍 vs 7.0.0 sequential]
parallel : 459.7 sec (Nstep=22) [1.957倍 vs 7.0.4 sequential (Nstep補正:1.872倍)]
v.7.0.0(sequentialのみ可能)との比較では今回のテスト版v.7.0.4の方がごくわずかに遅いですが、これは背後のタスクが多少関係する(プロセスを優先度低にして実行しているため)ので、誤差範囲に十分収まる差でしょう。同じv.7.0.4でsequentialとparallelを比較すると、非常に効率よく並列化されていることが分かります(単純比較で約2倍速い)。しかし、出力を見るとparallelの方が1ステップ少ないので(しかし最適化された構造は同一)、各ステップが等しく時間がかかるとした仮の補正で1.87倍となります。それでも十分高速化されていますね。
この計算では、計算で使う座標系の選択で最適化効率が非常に異なることも同時にわかりました。上記テストでは$DATAをMOPAC z-matrixで入力し、NZVAR=0として直交座標による計算にしています。これとは別に、同じ構造で直交座標に変換したものを$DATAに入力し、COORD=UNIQUEとした上で (1)NZVAR=0として直交座標のまま計算 (2)NZVAR=27,$ZMATグループでDLC=.T. AUTO=.T.として内部座標を生成して計算 の二通りを実行してみました(入出力ファイルはこちら)。
v.7.0.4 parallel
XYZ : 457.0 sec, -214209.84 kcal/mol (Nstep=21)
DLC : 148.1 sec, -214209.90 kcal/mol (Nstep=6) [3.086倍 vs XYZ]
ということで、DLC(非局在化座標)を利用した方が3倍以上高速且つよく収束している(最適化構造の溶媒和自由エネルギーを比較すると、DLCの方が0.06 kcal/mol低い)という結果に。どんな座標系を使うかは、構造最適化において特に重要であることを再認識させられます。
ちなみに、入力にMOPAC z-matrixを用いてNZVAR=27とすると、私のz-matrix構成が悪かったせいか2ステップ目でGradientが発散して計算が停止してしまいました(C-C結合の一つが異常接近していました)。
もう一つの計算、シングルポイントの結果は以下の通りです。
b. Single Point (RB3LYP1/6-31G(d))
v.7.0.0
sequential : 57.1 sec
v.7.0.4
sequential : 58.1 sec [0.98倍 vs 7.0.0 sequential]
parallel : 31.8 sec [1.83倍 vs 7.0.4 sequential]
より差がはっきりするのがSP計算ですが、こちらはsequentialでテスト版v.7.0.4がv.7.0.0に比べて1秒遅い結果になっています(もしかしたら並列化対応にしたことでsequentialのパフォーマンスが微妙に落ちたのかも?でも誤差範囲かも?)。parallelでは1.83倍の高速化で、構造最適化のNstep補正値と近い値です。概ね1.8~1.9倍ということでしょう。優秀な並列化効率で、4並列での効率も知りたいところです。
Leave a Reply
コメントを投稿するにはログインしてください。