一. 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 运行与硬件配置参考相关推荐

  1. 鸿鹄安装-硬件配置参考

    作者:龙哥 作者简介:一个让炎凰性能更加强劲的工程师 为了提供敏捷高效的数据分析模式,助力广大开发者(研发人员.数据分析师.数据科学家等)体验高效数据处理服务,炎凰数据推出免费社区版一站式异构数据分析 ...

  2. 从深度学习计算过程来分析深度学习工作站\服务器的硬件配置

    柯洁和AlphaGo的故事已经结束,输赢显得并不重要,这个天才少年曾落泪哽咽:它太完美我看不到希望.搭载谷歌无人驾驶技术的车辆已经完成200万英里的测试,如今它打算要载人了,无人驾驶真的已经不远.在苹 ...

  3. 结构、流体、热分析、多物理场耦合、电磁仿真硬件配置推荐2018

    (一)有限元分析介绍 有限元分析(FEA)借助高性能计算机工具,用"数值近似"和"离散化"方法对真实物理系统(几何和载荷工况)进行模拟,如求解结构.热传导.电磁 ...

  4. 2018结构、流体、热分析、多物理场耦合、电磁仿真计算特点与硬件配置方案分析

         2018结构.流体.热分析.多物理场耦合.电磁仿真计算特点与硬件配置方案分析 主要内容 1.有限元分析概述 2.有限元分析模拟计算过程分析与计算特点 2.1有限元前处理(建模.网格划分)计算 ...

  5. 史上最全虚拟现实VR(视景仿真/系统仿真/可视化)工作站硬件配置方案

    主要内容 第一章 虚拟现实(视景仿真.系统仿真.可视化)系统介绍 第二章 虚拟现实系统对硬件技术要求 第三章 行业应用VR工作站配置方案          VR应用1-视景仿真与训练工作站配置方案   ...

  6. 最合理2019年4K/6K/8K影视后期工作站硬件配置方案

    目录 1)8K视频市场应用前景 2)8K视频无压缩.压缩存储分析 3) 8K视频后期处理计算特点与硬件配置分析 4)8K影视后期处理工作站硬件配置推荐 8K(7680x4320)或8K DCI(819 ...

  7. Pix4Dmapper无人机航测之3D数据处理工作站硬件配置方案

    摘要 随着无人机技术的发展,用它来进行地形图绘制和3D建模越来越流行.大家都熟知的Pix4Dmapper是佼佼者.本文介绍了从低到高适用于各种情况的电脑/服务器硬件配置方案. 1.前言 随着无人机技术 ...

  8. AD5686R(16位高精度DAC)硬件和程序设计

    AD5686R(16位高精度DAC)硬件和程序设计 目录 AD5686R(16位高精度DAC)硬件和程序设计 前言 简介 硬件设计 硬件设计 代码移植部分 API部分 芯片性能 开源地址 前言   由 ...

  9. 【SemiDrive源码分析】【X9 Audio音频模块分析】16 - 音频模块框图及硬件原理图分析

    [SemiDrive源码分析][X9 Audio音频模块分析]16 - 音频模块框图及硬件原理图分析 一.X9HP 音频模块框图及硬件原理图分析 1.1 音频接口 I2S 介绍 1.2 X9 平台音频 ...

  10. 如何在 ubuntu 16.04上运行jar文件

    如何在 ubuntu 16.04上运行jar文件 sudo apt-get update 1 安装依赖包 sudo apt-get install python-software-properties ...

最新文章

  1. 虚函数中的变量作用域问题
  2. [Leetcode]50. Pow(x, n)
  3. LeetCode-动态规划背包题-1049. 最后一块石头的重量 II
  4. bytebuf池_Netty默认的Bytebuf是堆内还是堆外?池化or非池化?
  5. ASP.NET MVC下使用SWFUpload完成剪切头像功能
  6. 有一种无耻叫 “我是为你着想”
  7. 每天一个linux命令(1):ln 命令
  8. 解决Error: That port is already in use.
  9. matlab求感知距离的命令,感知机算法(MATLAB)
  10. transient关键字和volatile关键字
  11. 程序员正在抛弃 Facebook
  12. ZInt支持中文例子
  13. 逻辑回归实现鸢尾花分类
  14. html5 logo背景透明度,使用纯洁的CSS实现HTML5的新logo
  15. Python自做的一个zabbix_sender程序
  16. IP协议详解之头部结构
  17. Rabbit安装及简单的使用
  18. Vscode下载与配置(C语言)
  19. 【力扣刷题——字符串】附力扣链接、题目描述、解题方法及代码(344、541、剑指Offer05、151、剑指 Offer58、28、459)后续再补充
  20. jenkins + UIAutomation 自动化脚本运行app

热门文章

  1. CSND帐号居然又能用了,发个文章庆祝一下
  2. VMware Cloud Director Availability 4.3 下载 | 灾难恢复和迁移 | DRaaS
  3. 操作系统期末复习【超实用】
  4. Disease Ontology:人类疾病分类数据库
  5. 工时管理php,现场管理:标准工时和产能如何计算
  6. 谁说中国没有 Linus?中国初代 IT 宗师封神榜
  7. 这份好用视频拼接的软件干货分享,值得收藏
  8. 我的小米云端账号服务器,#小米开放云#免费云服务器安装Windows系统
  9. 金蝶K3销售退货案例教程
  10. ccfb类会议有哪些_CCF推荐的国际学术会议和期刊目录修订版发布