日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux64 gaussian 16,Gaussian 16 运行与硬件配置参考

發布時間:2023/12/9 linux 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux64 gaussian 16,Gaussian 16 运行与硬件配置参考 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. Gaussian 16的主要更新

Gaussian系列軟件最新的版本為Gaussian

16(G16,?高斯16) Revision A.03, 簡稱G16 A.03。G16的主要更新包括:

支持TD頻率、TS優化與IRC計算

非簡諧振動光譜

電子振動光譜等

EOMCC優化

支持GPU計算提高性能

支持Fortran、C、Perl與Python的接口

二. 關于應用

NVIDIA GPU支持Hartree-Fock與DFT計算,性能細節參見性能部分。

提高了大量CPU并行的性能,更多細節與如何優化多CPU、集群與GPU性能參見性能部分。

link0(%)部分的輸入參數與Default.Route文件的輸入參數現在也可以通過命令行或環境變量來設定,更多細節可參見輸入部分。

除了圖形界面外與命令行界面外,還提供了Fortran,C,Perl與Python接口。

三. 關于預設值的改變(與Gaussian 09比)

在Gaussian 16里使用了不同于Gaussian 09的預設參數/值:

a. 積分精度由10^-10變為10^-12

b. DFT格點(DFT grid)由FineGrid變為UltraFine;

CPHF的預設格點由CoarseGrid變為SG1

c. SCRF預設為IEFPCM的對稱形式(symmetric form, 在Gaussian

09里沒有)而不是原先的非對稱版本(non-symmetric)

d. 物理常數不再使用2006版的值而是使用2010版的值

e. 使用G09Defaults關鍵字可以將預設值設為Gaussian 09的值(與Gaussian

09兼容),但是在新的研究中強烈建議使用新的參數。

G16預設的內存為%mem=100mw。但對于更大的分子獲更多的CPU核心數時,應當使用更大的值,詳情參見性能部分

注:對32BIT機器而言1mw=3.81mb;對64BIT機器而言1mw=7.63mb。

TDDFT頻率計算默認情況下采用解釋解,比Gaussian 09的數值解速度更快。

四. 關于輸入部分的改變

大部分控制Gaussian 16操作的選項有4種方式:

通過輸入文件的link0輸入(%-行)

通過命令行輸入

通過環境變量輸入

通過Default.Route文件輸入

在搜索Default.Route文件時候,先搜索默認目錄,再搜索Gaussian

16可執行路徑的目錄(環境變量GAUSS_EXEDIR, 指向$g16root/g16)。

控制G16預設值的參數如下:

輸入行

命令行

環境變量

Default.Route

含義

%cpu=...

-c="..."

GAUSS_CDEF "..."

-C- ...

which CPUs to use

%gpucpu=...

-g="..."

GAUSS_GDEF "..."

-G- ...

which GPUs to use and bind to which CPUs.

%usersh

-s="rsh"

GAUSS_SDEF "rsh"

-S- rsh

Linda should use rsh to start workers

%usessh

-s="ssh"

GAUSS_SDEF "ssh"

-S- ssh

Linda should use ssh to start workers

%lindaworkers=...

-w="..."

GAUSS_WDEF "..."

-W- ...

which nodes to use with Linda

-r="..."

GAUSS_RDEF "..."

-R- ...

defaults for route

-h="..."

GAUSS_HDEF "..."

-H- ...

hostname for archive entry

-o="..."

GAUSS_ODEF "..."

-O- ...

organization/site for archive entry

GAUSS_FDEF "..."

-F- ...

default type for formchk (-c, -3, etc.)

GAUSS_UDEF "..."

-U- ...

default memory size for utilities.

#

-x="..."

GAUSS_XDEF "..."

complete route for job (no route section will be read from the

input file).

%chk=

-y="..."

GAUSS_YDEF "..."

checkpoint file for job.

%rwf=

-z="..."

GAUSS_ZDEF "..."

read-write file for job.

在G16中不再推薦使用%nprocshared與%nprolinda來控制作業。

五. 并行與性能部分

I.共享內存并行(Shared-memory parallelism, SMP)

大的內存有利于大的分子或者基組的計算

含有50或更多個原子的計算以及500或更多基函數的計算推薦每個核心配4GB的內存。命令freqmem可以用于預估基態頻率計算每個核心所需的最優內存,同樣的內存大小也適合于激發態頻率計算;這個內存大小對于對應的基態與激發態來說時綽綽有余的。

所需內存的大小隨著所用CPU核心數的增加而線性增加:如果每個核心4GB的內存是合理的,那么8個核心的時候,就應該用32GB。

對于更大的頻率計算、大的CCSD以及EOM-CCSD能量計算時,還需要留出足夠的內存用于緩沖大文件的硬盤緩沖。所以,給Gaussian作業設定內存大小時不宜超過系統總內存的50~70%。比如,一臺機器,其內存為128GB,那么全部的CPU核心數加起來分配的內存需要給出在64-80GB之間,以便為操作系統留出足夠的內存作為硬盤緩沖使用。

線程切換與開銷

線程切換(線程從一個CPU切換到另一個CPU)時存在效率損失,從而使得緩沖失效以及引起其它線程開銷。在大部分機器上,Gaussian將線程綁定到特定的CPU上,這是推薦的作業模式,尤其是用大量的CPU核心計算的時候。Link0的%CPU行可以指定特定CPU的核心號。因此,在一個8核的機器芯片上用%cpu=0-7而不用%nproc=8,因為前者將第一個線程指派給CPU

0(核心 0),下一個給CPU 1,如此類推。

早期的Intel處理器(Nehalem或更早期的處理器)由于內存帶寬不夠而沒有辦法讓一個芯片(CPU)上的全部CPU核心處于忙碌狀態,通常只利用一半的CPU核心,而內存設定為兩倍就像全部CPU核心都被使用了一樣。比如一臺4路12核(4個CPU,每個CPU含有12個核心)、128GB內存的計算機,該機器具有48個CPU核心:第一個CPU的0-11號CPU核心,第二個CPU的12-23號CPU核心,

第三個CPU的24-35號核心,第四個CPU的36-48核心等等。對于這樣的機器,最佳的CPU與內存分配方案是:24核心(每個CPU6個核心)、每核心3GB內存(72/24=3GB內存每核心)而不是48核心與1.5GB每核心內存的計算方案。那么輸入文件為:

%mem=72GB

%CPU=0-47/2

其中/2的意思是每隔一個核心使用,比如第一個CPU(0

號CPU)核心號為0、2、4、6、8、10的CPU核心,第二個CPU(1號CPU)核心號為12、14、16、18、20、22的CPU核心等等。

較新的Intel處理器(Haswell或更新的CPU)其內存帶寬足夠,可以讓全部的CPU跑起來。

只要內存足夠,線程綁定到指定的核心,那么對大分子的并行效率在64或更多核心數時相當良好。

超線程對Gaussian沒有用處

如果超線程沒有關閉,那么每個Gaussian作業在一個物理核心上只能用一個線程。在Linux操作系統里,不同處理器的超線程被組合在一起。假設有一個機器有兩顆CPU(CPU

0, CPU 1)、每顆有8個物理核心、共32個“核心”。那么,0-7為CPU 0的8個核心,8-15為CPU 2的8個核心;

16-23為CPU 0的第二個超線程,24-31為CPU

1的的第二個超線程。所以,該機器最佳的CPU使用方式為%CPU=0-15。

II.集群并行(Cluster/Linda)并行/跨節點并行

關于集群并行/跨節點并行

Hatree-Fock與DFT的能量、梯度、頻率計算以及MP2的能量、梯度計算支持集群跨節點并行。MP2頻率、CCSD、EOM-CCSD能量及優化僅支持SMP并行而不支持集群跨節點并行。諸如DFT不對稱頻率、CCSD頻率的數值解支持集群內跨節點并行計算。

共享內存與集群并行可以組合使用

總的來說,可以讓集群內每個節點的全部CPU進行共享內存并行。注意,%cpu與%mem指的是集群中每個節點的計算資源。假設有個集群含3個計算節點a、b與c,每個節點配有兩顆8核CPU:

%mem=64GB

%cpu=0-15

%lindaworkers=a,b,c

#p b31yp/6-31g* freq

上面的輸入文件請求到的計算資源為:三個計算節點(a,b,c)、每個節點16核心(共48核心)、每個核心4GB內存。

在數值微分的計算里(Freq=Anharm, CCSD Freq等),需要設定一個額外的CPU核心去搜集結果

所以,前面的那個例子,如果進行不對稱頻率計算,輸入文件如下:

%mem=64GB

%cpu=0-15

%lindaworkers=a:2,b,c

#p b31yp/6-31g* freq=anharm

其中, 假設g16從節點a開始執行。在節點a會啟用兩個核心,其中給一個用于收集結果,另一個以及節點b與c的核心用于頻率計算。

III. GPU的使用

Linux版的Gaussian 16支持NVIDIA K40與K80 GPU顯卡計算

早期的顯卡由于計算性能不足以及內存不夠而不能用于Gaussian

16的計算。比之CPU計算,內存對GPU計算顯得更加重要。K40或K80具有高達16GB的內存并盡可能的將這個資源用于Gaussian計算,這就需要有同樣大小的系統內存用于CPU線程使用。如果12GB的GPU配8或9GB系統內存、16GB的GPU配置11-12GB的系統內存工作的相當好。

使用GPU時需要有特定的CPU對GPU進行控制,這個CPU應該在物理上越靠近被它控制的GPU越好

用nvidia-smi命令可以檢查硬件配置。比如,一臺具有雙16核心Haswell

CPU、4張K80顯卡的機器機器其輸出如下:

重點是其中的CPU親和力(CPU affinity)。上述輸出說明GPU 0與1(在第一個K80卡上)。

對于小的作業GPU計算并無優勢,對于大的分子進行DFT能量、梯度以及頻率(基態與激發態)計算時才顯示出優勢。諸如MP2或CCSD之類的Post-SCF計算效率不高。

與一個CPU相比,每個GPU的計算速度是CPU的好幾倍。但是,一臺機器上的CPU數量通常比GPU多很多,盡可能地利用全部的CPU與GPU進行計算是很重要的事,那么從GPU上獲得的加速就會減少,因為多CPU計算自身的效率也是很高的。比如,如果1張GPU比一個CPU速度快5倍,那么從1個CPU到1個CPU+1個GPU的加速將會是5倍,但是從32CPU到32CPU+8個GPU的加速為32CPU—>24CPUs

+ 8 GPU, 等于24 + 5 x 8 = 64 CPU, 加速比為64/32或2x。

可以利用集群中多個節點上的GPU進行計算。因為%cpu與%gpucpu用于集群中的每個節點,因此,每個節點必須配置一模一樣(GPU數量,CPU親和力)。

注:G16不支持多個GPU跨節點并行計算。

IV. CCSD, CCSD(T)以及EOM-CCSD 計算

這些計算可以使用內存來避免I/O以提高效率。如果有O個活性占據軌道(active occupied orbitals,

NOA)與V個虛軌道(virtual orbitals, NVB), 那么所需的內存大約為9 x O^2 x V^2 words

(1mw =3.81gb)。這不取決于所用的計算核心數。

總結

以上是生活随笔為你收集整理的linux64 gaussian 16,Gaussian 16 运行与硬件配置参考的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。