第六章. 計算環境的設定
I. Gaussian 09 input file 格式範例 (副檔名預設為 .com)
%mem=1000M (設定計算時所使用的記憶體量)
%NprocShared=4 (設定計算時所使用的核心數)
%chk=H2O (設定存取 checkpoint file 的檔名,內容包含結構與波函數等計算結 果)
#MP2/aug-cc-pVTZ OPT FREQ (理論方法及 keywords) (空一行)
Geometry optimization and frequencies calculation (計算工作的註解欄) (空一行)
0 1 (charge 和 multiplicity,multiplicity = 2S+1,S 為分子的電子自旋量子數) H (這裡開始輸入分子的結構,這裡是水的 Z-matrix 結構)
O 1 R H 2 R 1 A (空一行) R = 0.98 A = 109.5 (空一行)
II. Gaussian 軟體免費線上手冊 (目前有 09 與 16 版本)
Gaussian 16 使用手冊: http://gaussian.com/man/
Gaussian IOP 使用手冊: http://gaussian.com/iops/
Gaussian 09 手冊可由 Gaussian 官網取得 : 1. 先到 Gaussian 官網 : http://gaussian.com/
2. 選擇 Support 項目,會顯示選單,在 Historical Documents 區域底下有個 G09 Keyword pages 選項,點擊 G09 Keyword pages 選項,下載一個壓縮檔。
3. 解壓縮 Gaussian 09 的網頁檔案後,可直接用瀏覽器開啟。
III. 設定記憶體的使用量
Gaussian 09 的記憶體該使用多少呢? 以下我們以吡嗪(Pyrazine,C4H4N2)為測試對 象,使用常見的DFT 理論 B3LYP 搭配 aug-cc-pVTZ 基底,來測試結構最佳化在使用 不同記憶體量下所需要時間。
測試所使用的電腦配備為
中央處理器為Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz 總記憶體量為65536 MB (64GB)
使用6 核心計算(%NProcShared=6),搭配不同記憶體量的計算時間:
記憶體使用量(MB) Real Time (s)
1024 140.7
2048 143.5
4096 140.7
8192 140.1
16384 141.7
32768 (32GB) 119.1
由以上測試結果不難看出,大約使用50% 的記憶體就可以達到最佳的計算效率,更多 記憶體並沒有幫助。針對Gaussian 09 的計算,如果沒有其他考量,一般建議可將記憶 體設定在系統記憶體總量的 50% 左右。
IV. 設定計算使用的核心數
大部分人在執行複雜的計算工作時,都會使用多核心CPU 進行平行化計算以增加 計算效率,以下我們同樣針對吡嗪分子,使用B3LYP 搭配 aug-cc-pVTZ 基底做結構 最佳化計算,測試在使用不同核心數下計算所需的時間 (記憶體設定為 32768 MB)
測試一所使用的電腦配備為
中央處理器為Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz 總記憶體量為65536 MB (64GB)
CPU 核心數 Real Time (s)
1 531.2
2 279.8
3 197.2
4 159.3
5 134.0
6 119.1
可以看到6 核心的工作站電腦計算速度的提升由單核提升至雙核最為明顯 (速度變為 1.9 倍),而使用六核心速度約為單核心的 4.5 倍、雙核心的 2.3 倍、三核心的 1.7 倍,
計算速度有不錯的提升。
測試二所使用的電腦配備為
中央處理器為 Intel(R) Core(TM) i7-7820X CPU @ 3.60GHz 總記憶體量為65536 MB (64GB)
CPU 核心數 Real Time (s)
1 535.1
2 295.5
4 168.5
8 111.9
8 核心的工作站電腦計算速度由單核提升至雙核最為明顯 (速度變為 1.8 倍),而使用八 核心速度約為單核心的4.8 倍、雙核心的 2.6 倍、四核心的 1.5 倍,計算速度亦有不錯 的提升,不過從6 核心 CPU 到 8 核心 CPU,平行化效能並沒差異太多,一般建議在 Linux 工作站上使用 4-8 核心進行計算,G09W Multi-Core 版本亦可使用多核心計算。
V. 初始分子結構對稱性的影響
從事單點以及結構最佳化計算時,起始分子結構的對稱性亦會影響計算時間,以 下以吡嗪分子做結構最佳化為例,使用6 核心搭配 32768 MB 記憶體的計算時間為:
對稱性 (point group) Real Time (s)
高 (D2h) 119
低 (C1) 421
通常起始結構對稱性越高,計算越有效率,這對較大的分子或使用高階理論時格外重 要。
V. SCF 運算方式設定影響 (In-core、Direct 與 Conventional)
Gaussian 09 在進行 SCF 電子能量收斂過程中提供了幾種不同的暫存資料方式,分 別為In-core、Direct 與 Conventional。 In-core 代表在收斂過程中,所需計算的雙電 子積分會在經過第一次計算之後將其全部儲存在記憶體 (memory) 內。Conventional 代表在計算過程中,雙電子積分在經過第一次計算之後將其全部儲存在硬碟 (disk) 上,
以供需要時讀取。而 Direct 則代表不將積分結果儲存起來,而是需要時直接計算。在 Gaussian 09 中,當記憶體足夠將自動使用 Incore,否則將切換為 Direct。以下我們以 B3LYP/aug-cc-pVTZ 方法計算 pyridine 分子的單點能量為例,比較 SCF 不同的設定 對計算時間的影響。
測試所使用的電腦配備為
中央處理器:Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz 總記憶體量為65536 MB (64GB)
使用6 核心搭配 41952 MB 記憶體 (Incore 的記憶體下限)
SCF 設定 Real Time (s)
In-core 33.0
Direct 67.4
Conventional 137.0
所以在進行 Hartree-Fock 與 Density Functional Theory (DFT) 的計算時,如果記憶體的 大小允許,則使用 In-core 的效率較高,若記憶體不足以使用 In-core,則程式會自動 使用 Direct 方法,若強制設定SCF=Incore,使用者必須設定足夠的記憶體才能夠進行 計算 (這裡需要約 40 GB 記憶體),不然計算會自動終止。
V. Scratch file 位置的設定
在Gaussian 09 計算過程中會產生暫存資料的 scratch file (rwf 檔),檔案的大小有 可能會高達數 GB 以上,檔案的讀寫有可能成為計算速度的瓶頸,因此通常建議將 scratch file 的位置指定在與 input/output files 不同的高速硬碟分割 (partition),最好配 備 Raid 0 增加讀寫速度,千萬不要用網路磁碟。(Unix 中使用 setenv
GAUSS_SCRDIR 指令來設定 scratch file 的位置,32 位元的 G09W 會有 2 GB 的檔案 大小限制)
蔡承成,胡維平 國立中正大學 化學暨生物化學系
© Copyright 2017