1.Gaussian简介
Gaussian是一个功能强大的量子化学综合软件包。其可执行程序可在不同型号的大型计算机、超级计算机、工作站和个人计算机上运行,是目前最流行、用户最多的量化程序。

Gaussian的计算特点:
- 并行策略分为节点内openmp并行和节点间的linda并行。
- 对计算能力的需求很大,单个节点配备越多的CPU将提供越强大的计算能力。
- 对内存要求较高(例如CIS,CCSD等计算),节点内存比较大,计算效率高。
- 在计算过程中要写出大量临时文件,I/O要求高
- 网络要求低延迟通信
目前常用的作业类型:
- SP——单点能量
- Opt——几何优化
- Freq——频率和热化学分析
- IRC——反应路径追踪
- Scan——扫描
- Stable——测试波函数稳定性
- IRCMax、Polar、ADMP、BOMD、EET、Force、Volume……
2.版本
目前集群使用的版本为:G16 C.01
该版本不支持跨节点计算,仅支持节点内并行计算。
3.提交作业
3.1 准备输入文件
Gaussian的基本输入文件包含以下五个部分:
①Link 0 Commands
②Route section
③Title section
④Molecule specification
⑤Optional additional sections
其中后四项内容必须以空白行终止,如若缺少,计算时会报错!
下面附上Gaussian官网给出的两个关于单点能计算和限制性优化的输入文件的示例:


3.2.配置Gaussian运行环境
Gaussian安装在公共目录 /mnt/softs/tests下,各登录节点均可使用。使用前需要配置环境变量,具体操作如下:
source /mnt/softs/g16env
3.3.提交计算任务
完成环境变量激活后,可以使用Gaussian进行计算。首先使用cd命令切换到相应的输入文件目录,然后使用g16命令或者sbatch命令提交计算。
3.3.1 g16命令
使用g16命令可以直接在登录节点进行计算。下面给出三种具体命令:
g16 < test.gjf > test.out !信息都输出到test.out里,末尾可以再加上&令任务在后台运行
g16 < test.gjf |tee test.out !信息输出到test.out的同时也同时输出到屏幕上
g16 test.gjf !输出文件将默认为当前目录下的test.log
3.3.2 sbatch命令
编写的Slurm脚本文件00g16.sh如下所示,可以利用&执行符号(最后一个作业可加可不加)在脚本里计算多个作业,当然也可以在脚本文件里只写入一个任务。脚本文件放置在公共目录 /mnt/softs下,可利用cp命令将其复制到相应的输入文件目录下即可使用。
#!/bin/bash
#SBATCH --partition=Nebula_Chubby
#SBATCH --nodelist=node3
#SBATCH -n 1
#SBATCH --cpus-per-task=16
export g16root=/mnt/softs/tests/g16
export PATH=$g16root:$PATH
source $g16root/bsd/g16.profile
mkdir /tmp/$USER@$SLURM_JOB_ID
export GAUSS_SCRDIR=/tmp/$USER@$SLURM_JOB_ID
export GAUSS_EXEDIR=$g16root
srun g16 test.gjf &
wait
rm -r /tmp/$USER@$SLURM_JOB_ID
4.Gaussian并行测试
4.1 Gaussian的并行模式
节点内并行——OpenMP来实现的(共享内存并行SMP)
跨节点并行——ACSI的Linda软件实现的,而不是常用的MPI
Linda提供了一个虚拟的共享内存(VSM)环境,它将集群中的主机结合起来,获得一个全局的逻辑的共享内存,原始程序依靠这个环境实现跨节点并行运算只需要添加简单的指令来控制数据的交换即可。这样使用openmp并行方式的Gaussian就可以很容易地在集群环境中并行运行了。但是高斯跨节点并行效率损失非常严重。建议使用单节点并行运算。
4.2 并行指令
%NProcShared = N 请求使用最多N核心开启共享内存SMP上的并行处理
%CPU = proc-list 包含用于共享内存并行处理的核心编号列表
%CPU将Gaussian的线程与CPU核心绑定,避免操作系统的频繁调度导致性能损失。建议使用 %CPU代替 %NProcShared。
4.3 并行测试
在node2节点上进行了C6H13O3的单点能和几何优化测试:
单点能(CCSD(T)/cc-pVTZ);几何优化+频率分析 (M06-2X/jun-cc-pVTZ)
测试结果如下图所示:

计算SP:
使用16核心,并行效率只有54%
使用32核心,并行效率只有41%
计算Opt + Freq:
使用16核心,并行效率为95%
使用32核心,并行效率为81%
因此我们可以针对不同的任务类型,选择不同的计算核数,提高计算效率。在这里,暂时建议大家在Chubby节点使用16核心进行计算,Elites节点使用8核心计算。后续将持续进行测试,得到最优选择。