Gaussian 16 vs 09 ベンチマーク

Share This:

今年発売された Gaussian 16 ! 新機能も気になるところですが、既存の Gaussian 09 とどれほどの差があるのかという点も気になります。

今回は、構造最適化、遷移状態構造の最適化、振動計算について2つを比較してみました。
今回行った比較から log ファイルの中身や座標、エネルギー、振動など全てにおいて差が見られましたので、以下簡単にまとめました。

今回の記事では、たった 12 個の計算しか行っていませんが、今後暇を見てベンチマークを作成していきたいと考えています。
最近大変忙しく、ソースコードを読んでいる暇がありませんので、、、なぜ差があるのかについては調べていません。。。コンパイルの過程にも問題がある可能性かもしれません、、、。

【2017.04.22 追記】
g16 と g09 ではデフォルトの grid が違うため、正しく評価できてないとの指摘がありました。そのせいで、計算値にズレが生じているとのことです。
そこで、grid 値を揃えて再度検証してみました。

また、より詳細なベンチマークが HPC ソリューションさんから出ているようです。
http://www.hpc.co.jp/benchmark20170307.html

テスト環境

CPU: Intel CPU Core i7-7700 3.6GHz 8Mキャッシュ 4コア/8スレッド
m/b: ASUS PRIME H270-PRO
メモリ(64 GB): Crucial DDR4 2400 MHz 16GB 4枚
SSD: M.2 SSD_250 GB Samsung SSD 960 EVO M.2 Type2280 NVMe1.2

input ファイル

通常のベンチマーク測定で扱う化合物は、面白みがありませんので、実践的な系として実際に論文になっているものを input として用いることにしました。

“(2 + 1)-Cycloaddition Reactions Give Further Evidence of the Nitrenium-like Character of 1-Aza-2-azoniaallene Salts”
J. Org. Chem., 2017, 82 (7), pp 4001–4005. DOI: 10.1021/acs.joc.7b00407
Nezar Al-Bataineh, Kendall N. Houk, Matthias Brewer and Xin Hong

今回は、ケンダール・ハウク Kendall N. Houk らが報告した (2 + 1)-Cycloaddition Reactions を取り上げました。SI の 14, TS15, 16, TS17 の座標を利用しました。

本記事では実際に座標を載せることはしませんので、ご自身で論文と SI をダウンロードしてください。

ベンチマーク測定は 1.構造最適化、2.遷移状態構造の最適化、3.振動計算化合物の3種類について行いました。IRC 計算は今回は行いませんでした。論文では、M06-2X/6-311+G(d,p)//B3LYP/6-31G(d)で計算されていますが、今回は B3LYP/6-31+G(d,p) で計算しました。

まず、14, 16 の構造を用いて構造最適化を行いました。キーワードはシンプルにするため、細かい設定は一切行いませんでした。

次に TS15, TS17 の構造を用いて遷移状態構造最適化を行いました。キーワードの記載は省略します。

その後、構造最適化された遷移状態の座標を用いて振動計算を行いました。いつもは、chk ファイルから情報を読み込んで計算時間を短縮させていますが、今回はベンチマーク測定なので、そのようなことはしませんでした。そのため、今回行った全ての計算でchk ファイルを保存しませんでした。

計算時間について(grid を揃えた比較)

g16 では、デフォルトで ultrafine の精度ですが、g09 では デフォルトで fine です。そのため、両方に int=grid=ultrafine というキーワードを追加して比較しました。

計算時間の比較結果を以下にまとめました。縦軸が時間(min.)を表しています。

計算速度は gaussian16 の方が約 1.2 倍早かったです。また、grid を揃えたところ、計算値が一致しました。

管理人の持っている g16 は AVX2 版ですが、 g09 の方は覚えていません。。。

計算時間について(grid を揃えていないデータ)

g09 と g16 の計算時間の比較を以下にまとめました。縦軸が時間(min.)を表しています。grid などキーワード指定しない状態で計算させた場合、両者にあまり大きな差はありませんでした。言い換えれば、同じ計算時間の場合 gaussian 16 の方が精度が高いということでしょうか。

g16 は log ファイルの最後に cpu 時間と実際にかかった時間の両方が表示されます。今回は 8 スレッドで計算しました。実際に計算にかかった時間は cpu 時間 の 7.8 〜 8.0 倍でした。並列化効率もまずまずです。

計算誤差(grid を揃えていないデータ)

grid を揃えない場合、二つの log ファイルを比べると計算値の小数点第4位以下に差があります。a.u. で 0.0001 差があると、kcal/mol では 0.06 kcal/mol 程度差があることになります。

ここで実際に TS15 の構造を用いた遷移状態構造最適化の log ファイルについて比べてみましょう。左側が g16 右側が g09 で計算したものです。まずは、最初の Fock 行列の計算です。

また、構造最適化に要したサイクル数は、g16 と g09 で ±1 cycle くらいの差なので、ほぼ同じと見なして良さそうです。どちらが早いかはその時により異なります。

これだけ見ると、g16 になってもあまり高速化されてなさそうな印象を受けますが、最初の vector の計算は g16 の方が圧倒的に収束が早かったです。(今回はcalcfc を指定しました。)

g09 で 49 サイクルもかかっているのに、g16 では 10 サイクルで収束しました。

最後に、Optimized Parameter を比較すると g16 と g09 で広範囲にわたり差があります。小数点以下の誤差ですが、少し気になります。