日本无遮羞调教打屁股,99热最新网址,几个农民工一起弄我舒服死了,国产激情综合五月久久

Loading...

上海繹模信息科技有限公司

eMolTech,計算科學的領航者

新聞通知

Gaussian 16 A.03 Release Notes


發(fā)布時間:2017-02-03
關鍵詞:Gaussian 16 A.03 Release Notes

  • 新功能
  • 與Gaussian 09區(qū)別
  • GPUs的使用
  • 并行性能
  • CCSD性能
  • Link0中的等價定義
  •  

    新功能

    新模擬方法

    ◆  TD-DFT 激發(fā)態(tài)計算支持解析頻率(frequencies, IR及Raman)、過渡態(tài)優(yōu)化(TS)及內稟反應坐標計算(IRC)。

    ◆  EOMCC 耦合簇運動方程(EOM-CC)方法支持結構優(yōu)化。

    ◆  VCD及ROA光譜支持非諧振計算,請參考 Freq=Anharmonic

    ◆  支持電子振動光譜計算,請參考 Freq=FCHT 及相關選項。

    ◆  支持共振拉曼光譜計算,請參考 Freq=ReadFCHT。

    ◆  新密度泛函方法: M08 familyMN15MN15L

    ◆  新雙雜化泛函方法:DSDPBEP86, PBE0DH及PBEQIDH。

    ◆  PM7 半經驗方法。

    ◆  Adamo激發(fā)態(tài)電荷轉移分析,請參考 Pop=DCT

    ◆  Caricato耦合簇運動方程(EOM-CC)溶劑化迭代模型,請參考 SCRF=PTED

    ◆  廣義內坐標:可以任意定義內坐標用于限制性優(yōu)化或者其它目的,請參考 Geom=GIC 及GIC Info

     

    性能提升

    ◆  Hartree-Fock及DFT計算在Linux系統(tǒng)下支持NVIDIA K40及K80 GPUs. 具體請參考 Using GPUs。

    ◆  多核芯(數量較多)處理器的并行效率已經得到提升。對于多CPUs及集群如何優(yōu)化性能請參考 Parallel Performance。

    ◆  Gaussian 16使用優(yōu)化的內存算法來避免CCSD迭代時的磁盤讀寫。

    ◆  GEDIIS優(yōu)化算法效率已得到提升。

    ◆  CASSCF 方法活性空間≥ (10,10) 的計算性能得到提升并可以擴展至16個軌道(取決于分子類型)。

    ◆  W1 組合方法的核相關能(core correlation energies)計算速度得到巨大提升。

    ◆  Gaussian 16 對于復合電子傳播(composite electron propagator, CEP, DiazTinoco16)方法中的對角化、二階自能量近似(second-order self-energy approximation, D2)的計算性能得到巨大提升。請參考 EPT.

     

    用法提升

    ◆  提供其它軟件的接口工具,包括匯編語言(Fortran和C)以及解釋語言(Python和Perl)。具體細節(jié)請參考 Interfacing to Gaussian 16。

    ◆  輸入文件Link 0 (%)中以及/或者 Default.Route 文件中的相關參數目前也能夠通過命令行形式或者環(huán)境變量指定。具體細節(jié)請參考 Link 0 Equivalences

    ◆  優(yōu)化過程中可以指定每N步重新計算力常數。請參考Opt=Recalc。

     

     

  • Gaussian 09的區(qū)別

    默認參數

    下列默認參數在Gaussian 16中與Gaussian 09不同:

    ◆  積分精度為10-12 而不是Gaussian 09中的10-10。

    ◆  DFT 默認格點為 UltraFine 而不是 G09中的FineGrid;CPHF默認格點為 SG1 而不是 CoarseGrid。具體細節(jié)請參考Integral

    ◆  SCRF 默認為IEFPCM的對稱形式(symmetric form of IEFPCM) [Lipparini10] (Gaussian 09中沒有此功能)而不是非對稱形式。

    ◆  物理常數使用2010版而不是Gaussian 09中的2006版。

    前兩項變化是為了保證一系列新方法的精度(如TD-DFT頻率, 非諧振ROA),因此使用 Integral=(UltraFine,Acc2E=12) 作為默認選項。使用這些設置一般能提高數值積分的可靠性,比如溶劑化模型下的DFT優(yōu)化。相比于Gaussian 09的默認值Integral=(FineGrid,Acc2E=10),此設置對CPU的需求稍有升高。

    G09Defaults 關鍵詞能夠把上述默認值重新定義為Gaussian 09 默認值。它提供了與此前計算的兼容性,但對于新的計算我們推薦使用新的默認值。

     

    默認內存值

    Gaussian 16 默認內存為 %Mem=100MW (800MB)。使用多核計算大分子體系時使用更大的內存更為適合。具體細節(jié)請參考 Parallel Jobs。

     

    TD-DFT頻率

    TDDFT 頻率在計算二階導數時默認使用解析二階導數,這比數值導數快很多(數值導數在Gaussian 09中是唯一選項)。

     

  • GPUs的使用

    Gaussian 16 在Linux系統(tǒng)下支持 NVIDIA K40及K80 GPUs。較早的GPUs不具備計算能力或者足夠的內存來運行Gaussian 16。Gaussian 16目前還不支持Tesla-Pascal系列顯卡。

     

    作業(yè)內存分配

    GPUs在計算時需要分配足夠的內存,這比使用CPUs計算時更重要,因為高效使用GUPs時會有大量任務同時運行。K40和K80系列顯卡擁有高達16 GB內存,一般情況下,大部分內存都應當用于Gaussian程序。比如每個GPU有12GB內存時,給Gaussian分配8-9 GB內存效果比較好;同理,每個GPU有16GB內存時,給Gaussian分配11-12 GB內存效果比較好。此外,每個CPU線程至少需要分配相同的內存用于控制GPU。

     

    關于CPUs控制

    當使用GUPs時,每個GPU必須由一個特定的CPU控制。該CPU應該在物理架構上更靠近所控制的GPU,并且GPUs不能共享CPUs控制。另外需要注意,用于控制GPUCPUs 不能再用于做計算節(jié)點。

    在裝有GUPs的系統(tǒng)上查看硬件架構可以使用 nvidia-dmi 功能。例如,下面演示的是雙芯片16核Haswell CPU及三芯片K80板(每個板擁有2個GPUs)的架構:

    GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 CPU  Affinity
    GPU0    X  PIX  SOC  SOCSOCSOCSOCSOC0-15        第一塊芯片上的核
    GPU1  PIX    X  SOC  SOCSOCSOCSOCSOC  0-15
    GPU2  SOC  SOC    X  PIX  PHB  PHBPHBPHB16-31   第二塊芯片上的核    
    GPU3  SOCSOC  PIX    X  PHB  PHBPHBPHB  16-31 
    GPU4  SOCSOC  PHB  PHB    X  PIX  PXB PXB  16-31
    GPU5  SOCSOC  PHB  PHB  PIX    X  PXB PXB  16-31
    GPU6  SOCSOC  PHB  PHB  PXB  PXB    X PIX  16-31 
    GPU7  SOCSOC  PHB  PHB  PXB  PXB  PIX   X  16-31

    示例中最重要的部分是CPU親密度(CPU affinity)。此例中顯示 GPUs 0和1 (第一塊K80卡) 與第一塊CPUs芯片相連,而GPUs 2-7 (第二塊K80卡) 與第二塊CPUs芯片相連。

     

    為Gaussian 作業(yè)指定GPUs及CPUs控制

    用于計算的GPUs及用于控制的CPUs可通過Link 0 部分使用%GPUCPU 命令指定。此命令有一個參數:

    %GPUCPU=gpu-list=control-cpus

    其中 gpu-list GPU列表(用逗號隔開),也可以是數值范圍(例如, 0-4,6);control-cpus 為相似格式的控制CPU列表,這兩列的內容是GPU及控制CPU。

    例如, 在配有6 GPUs的32核系統(tǒng)里,給一個作業(yè)分配所有CPUs (26 CPUs用于做部分計算) 及6CPUs用于控制GPUs可以在Link 0 部分使用如下命令:

    %CPU=0-31                               控制CPUs也在此列表中。             
    %GPUCPU=0,1,2,3,4,5=0,1,16,17,18,19                             

    上述命令定義 CPUs 0-31 將用于此作業(yè)(盡管并不是所有CPUs都用于計算)。此作業(yè)將使用GPUs 0-5,并且CPU 0控制GPU0,CPU 1控制GPU1,CPU 16控制GPU2,CPU 17控制GPU3等等。注意控制CPUs也包含在%CPU列表中。

    在上例中, GPU及CPU列中可以表述的更加簡潔:

    %CPU=0-31                                      
    %GPUCPU=0-5=0-1,16-19                                 

    一般情況下我們都使用連續(xù)編號的核,但在一些特殊情況下并非如此。例如,假設在同一臺機器上已經有一個作業(yè)占用了6 CPUs,使用的是%CPU=16-21。那么,如果想要使用其它26 CPUs 并且其中6個用于控制GPUs,可以使用如下定義:

    %CPU=0-15,22-31                   &nnbsp;       
    %GPUCPU=0-5=0-1,22-25                                 

    這個作業(yè)將會使用26個核,其中20個核用于計算,6個核用于控制GPUs (分別為CPUs 0, 1, 22, 23, 24, 25)。

     

    GPUs及其性能

    在對大分子體系進行DFT能量、梯度及頻率(適用于基態(tài)及激發(fā)態(tài))計算時,GPUs性能才有較好體現。小分子體系計算時并不能體現GPUs性能。此外,在后自洽場(post-SCF)計算中(例如MP2或CCSD),使用GPUs效果并不明顯。

    單個GPU計算速度比單個CPU快許多倍。但如今的機器往往CPUs數目遠超過GPUs,因此只有使用所有的CPUs及GPUs才能獲得最好的性能。

    在某些情況下,GUPs預期加速效果會受到抑制,因為Gaussian 16將會使用到更多的CPUs。例如,假設GPU計算速度比CPU快5倍,那么使用GPU的計算速度相比于CPU將會是5倍。但是在一臺配備32CPUs及8GPUs的大型服務器下使用GPUs的預期加速效果卻是2倍:

    Without GPUs: 32*1 = 32
    With GPUs: (24*1) + (8*5) = 64          注意控制CPU并沒有參與計算
    Speedup: 64/32 = 2

    所以你必須認真考慮你的服務器配置及環(huán)境來決定該如何使用CPUs及GPUs

     

    集群下的GPUs

    支持集群中節(jié)點上的GPUs。因為 %CPU and %GPUCPU 只是定義了每個節(jié)點中的情況,因此要求每個節(jié)點有相同的配置,不過一般情況下集群中的節(jié)點配置都是相同的,所以通常這不是問題。

     

  • 并行性能

    共享內存并行(Shared-memory parallelism)

    內存分配。大分子體系使用大基組計算時,分配更多的內存計算速度將更快。對于50個或者更多原子體系及/或500個或更多基函數的體系建議每個核分配4 GB內存。freqmem 功能可以估計基態(tài)及激發(fā)態(tài)頻率計算中單個線程所需要的內存大小。所需內存要按照使用的核數遞增,比如單核需要4GB,則8CPUs則需要32GB。當然,有些特殊硬件在內存大小上受到限制,但是內存需求隨著核數目的增長而線性增加是理想的目標。值得注意的是,在內存固定不變的情況下,隨著核數目增加(較多核情況下)計算性能無法提高。

    對于大體系頻率計算及大體系(相對而言)CCSD和EOM-CCSD能量計算,建議有足夠的內存用來緩存大的磁盤文件。因此,Gaussian作業(yè)建議使用系統(tǒng)總內存的50-70%。例如,在一臺配有128 GB內存的服務器上,當使用所有CPUs時,一般指定64-80 GB,剩下的內存則用于系統(tǒng)本身的硬盤緩存。

     

    綁定CPUs線程。當線程從一個CPU轉到另一個CPU時,會造成緩存無效或者引起其它問題,因此計算效率會明顯下降。在大多數服務器上,Gaussian 能夠把線程綁定到特定的CPUs上,特別在使用大量核時,這是推薦模式。Link 0部分的%CPU明確定義了所使用的CPUs數目,因此在一臺8核的服務器上,設定%CPU=0?7  %NProc=8更好,因為前者把第一個線程綁定到CPU 0上,下一個線程綁定到CPU 1,等等。

    在一些老Intel處理器上(Nehalem及之前版本),因其沒有足夠的內存帶寬而無法讓所有的CPUs工作,所以推薦使用一半CPUs并分配原來兩倍大小的內存。例如,在一臺四芯片12核(CPUs 0-11 位于第一個芯片;12-23 位于第二個芯片,等等)和128GB內存的服務器上,推薦使用24核(每個芯片使用6核)并為每個核指定72 GB/24 procs = 3 GB內存,而不是使用全部48核(每個核只有1.5GB內存)。輸入文件如下:

    %Mem=72GB
    %CPU=0-47/2

    此處 /2 意味著將會間隔使用核芯,比如cores 0, 2, 4, 6, 8及10 (芯片0), 12, 14, 16, 18, 20及22 (芯片1),等等。

    新的Intel處理器 (Haswell及此后版本)因為內存帶寬有明顯改進,因此使用芯片上所有核進行計算時效果較好。

    只要有足夠的內存以及每個線程都綁定到特定核時,使用64核甚至更多核計算時效率依然很高。

     

    關閉超線程。超線程對于Gaussian無效,因為它把同一個物理CPU的資源(比如內存帶寬)分割給不同的線程。如果超線程無法關閉,Gaussian作業(yè)應該在每個物理CPU上只使用一個超線程。對于Linux系統(tǒng),不同核的超線程是編組在一起的,比如一臺兩芯片(8核,3路超線程)的服務器,“CPUs” 0-7 為chip 0上的8核, 8-15為chip 1上的8核,16-23 為chip 0 上8核的第二個線程,等等。因此Gaussian作業(yè)建議指定%CPU=0?15

     

    集群并行(Linda)

    適用范圍。Hartree-Fock及DFT能量、梯度、頻率計算以及MP2能量和梯度計算能夠在集群上有效并行,而MP2 頻率、CCSD及EOM-CCSD能量和優(yōu)化只支持SMP并行(單節(jié)點)。對于數值導數(Numerical derivatives),比如DFT非諧振頻率和CCSD 頻率,支持Linda并行計算。

     

    SMP組合并行。共享式并行及集群并行能夠進行組合。一般來說集群中的每個節(jié)點都支持所有CPUs共享內存并行。注意 %CPU  %Mem 適用于集群中的每個節(jié)點。因此,如果一臺服務器有3個節(jié)點,名字為apple, banana cherry每個節(jié)點有兩個芯片8核,此時可指定:

    %Mem=64GB
    %CPU=0-15
    %LindaWorkers=apple,banana,cherry
    # B3LYP/6-311+G(2d,p) Freq …

    這樣每個節(jié)點將會運行16個線程,在3個節(jié)點上每個線程都綁定到一個核上,并且48個線程中每個線程將獲得4GB內存。

    對于一些特殊情況(數值微分),比如 Freq=Anharm, CCSD Freq,等等—將有另外一個節(jié)點用于收集結果。因此,這些計算會在管理節(jié)點(Gaussian 16啟動的節(jié)點)同時運行兩個任務,例如計算非諧振頻率,可指定:

    %Mem=64GB
    %CPU=0-15
    %LindaWorkers=apple:2,banana,cherry
    # B3LYP/6-311+G(2d,p) Freq=Anharm …

    此處假設Gaussian 16在 apple節(jié)點啟動,這里將在apple節(jié)點啟動2個任務,一個僅用于收集結果,apple節(jié)點其它的核和bananacherry將用于計算。

     

     

  • CCSD性能

    CCSD, CCSD(T)及EOM-CCSD計算內存需求

    如果有足夠內存來存儲振幅(amplitudes)及矢量積(product vectors),上述計算則可以使用內存來避免讀寫錯誤而使計算變得更加高效。如果體系有 NO 個活性占據軌道(NOA in the output)及NV 個空軌道(NVB in the output),那么所需內存則為 9NO2NV2 字節(jié),這與所使用的核數無關。

     

     

  • Link 0中的等價定義

    用于控制Gaussian 16運行的許多選項可以使用4種方法指定,其優(yōu)先級從高到低如下所示:

    1. Link 0 輸入 (%-lines):這是一個常用方法,它可以用于控制單個作業(yè)及并且它是多步計算中控制其中一個特定作業(yè)的唯一方式。例如:

    %CPU=1,2,3,4

    2. 命令行:當我們想使用不常見方式運行程序的時候此方法比較有用。例如:

    g16 -c="1,2,3,4" …

    3. 環(huán)境變量:此方法對于標準腳本,例如生成和提交作業(yè)到隊列系統(tǒng)時非常有用。例如:

    export GAUSS_CDEF="1,2,3,4"

    4. Default.Route文件:此方法對于我們想改變程序默認參數式非常有用。例如:

    -C- 1,2,3,4

    程序會首先檢查當前目錄下的Default.Route文件,然后 檢查Gausssian 16運行程序所在目錄,也就是環(huán)境變量GAUSS_EXEDIR所指定的目錄,此目錄一般為 $g16root/g16

     

    下表列出Link 0中最重要的命令以及他們的等價定義:

    Default.Route

    Link 0

    Option

    Env. Var.

    Description

    Gaussian 16 execution defaults

    -R-

     

    -r

    GAUSS_RDEF

    Route section keyword list.

    -M-

    %Mem

    -m

    GAUSS_MDEF

    Memory amount for Gaussian jobs.

    -C-

    %CPU

    -c

    GAUSS_CDEF

    Processor/core list for multiprocessor parallel jobs.

    -G-

    %GPUCPU

    -g

    GAUSS_GDEF

    GPUs=Cores list for GPU parallel jobs.

    -S-

    %UseSSH

    -s

    GAUSS_SDEF

    Program to start workers for network parallel jobs: rsh or ssh.

    -W-

    %LindaWorkers

    -w

    GAUSS_WDEF

    List of hostnames for network parallel jobs.

    -P-

    %NProcShared

    -p

    GAUSS_PDEF

    #processors/cores for multiprocessor parallel jobs. Deprecated; use -C-.

    -L-

    %NProcLinda

    -l

    GAUSS_LDEF

    #nodes for network parallel jobs. Deprecated; use -W-.

    Archive entry data

    -H-

     

     

    GAUSS_HDEF

    Computer hostname.

    -O-

     

    GAUSS_ODEF

    Organization (site) name.

    Utility program defaults

    -F-

     

     

    GAUSS_FDEF

    Options for the formchk utility.

    -U-

     

     

    GAUSS_UDEF

    Memory amount for utilities.

    Parameters for scripts and external programs

    # section

    -x

    GAUSS_XDEF

    Complete route for the job (route not read from input file).

    %Chk

    -y

    GAUSS_YDEF

    Checkpoint file

    %RWF

    -z

    GAUSS_ZDEF

    Read-write file.

    注意對于命令行與及環(huán)境變量的明確數值一般需要用引號標注,以避免系統(tǒng)shell改變這些參數。例如:g16 -c="1,2,3,4" …

     

     

Top