平台上已安装常用应用软件,平台使用Environment Modules以模块的形式对环境变量进行管理。在高性能计算集群系统中,安装有多种软件及其不同版本,它们需要设置不同的环境变量,Environment Module可以将这些环境变量做成模块文件(modulefile)。模块可以被加载(load)、卸载(unload)、切换(switch)等,这些操作会改变相应的环境变量设置,让用户方便的在不同环境之间切换。
以下列出module常用的一些命令:
module help # 显示帮助信息
module avail # 显示已经安装的软件环境
module load # 导入相应的软件环境
module unload # 删除相应的软件环境
module list # 列出已经导入的软件环境
module purge # 清除所有已经导入的软件环境
module switch [mod1] mod2# 删除mod1并导入mod2
以下是module使用示例:
查看集群现有软件库:
module avail
查看集群可用的intel版本:
module avail intel
导入intel/2017u5软件环境:
module load intel/2017u5
清除所有通过module导入的软件环境:
module purge
GNU编译器套件
GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、Objective-C、Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等)。
GCC使用方法如下:平台上安装了多个版本的gcc,可以直接通过module加载使用;加载gcc编译器代码如下:
module load gcc/7.3.0
VASP
VASP是维也纳大学Hafner小组开发的进行电子结构计算和量子力学-分子动力学模拟软件包。它是目前材料模拟和计算物质科学研究中最流行的商用软件之一。
VASP提交作业步骤如下:
1.创建工作目录
2.通过xftp传输工具将(INCAR、KPOINTS、POSCAR、POTCAR)等文件传输到该目录下。
3.使用vi、vim等编译器在该目录下编写slurm脚本。
4.下面slurm脚本以vasp5.4.4为例。
作业脚本名称可以自定义,内容如下:
#!/bin/bash
#SBATCH -J test #作业名称
#SBATCH -p cpu #队列名称
#SBATCH -n 64 #作业使用核数
#SBATCH --error=%J.err #作业错误输出
#SBATCH --output=%J.out #作业日志输出
module load intel/2017u5 vasp/5.4.4 #加载 intel和vasp5.4.4 环境
mpirun -np 64 vasp_std #vasp 运行命令,-np 数值需要和上面-n 数值一致
scontrol show job $SLURM_JOBID #作业信息输出
5.使用sbatch命令+作业脚本文件名称提交作业。例:sbatch vasp.sh
若提示作业ID则代表作业提交成功,使用squeue命令可查看作业状态。作业计算完成后使用xftp将作业结果从服务器上下载到本地。
Gromacs
Gromacs是用于研究生物分子体系的分子动力学程序包。它可以用分子动力学、随机动力学或者路径积分方法模拟溶液或晶体中的任意分子,进行分子能量的最小化,分析构象等。同时它是一个功能强大的分子动力学的模拟软件,其在模拟大量分子系统的牛顿运动方面具有极大的优势。它的模拟程序包包含Gromacs力场(蛋白质、核苷酸、糖等),研究的范围可以包括玻璃和液晶、到聚合物、晶体和生物分子溶液。
Gromacs提交作业步骤如下:
1.创建工作目录
mkdir gromacsJob1
cd gromacsJob1
2.将运行gromacs需要的相关文件上传到该文件夹下
3.在该文件夹下编写作业脚本,并命名为gromacs.sh,脚本内容如下:
#!/bin/bash
#SBATCH -J test
#SBATCH -p cpu
#SBATCH -n 64
#SBATCH --error=%J.err
#SBATCH --output=%J.out
module load gcc/7.3.0
module load openmpi/3.1.1
/gpfs/share/software/gromacs/2021.3_gpu/gcc_7.2.0/opempi_3.1.3/bin/GMXRC.bash
mpirun -np 48 /gpfs/share/software/gromacs/2021.3_gpu/gcc_7.2.0/opempi_3.1.3/bin/gmx_mpi mdrun -deffnm md1-cluster0 -dlb yes
4.提交作业
sbatch gromacs.sh
Fluent
FLUENT是用于模拟具有复杂外形的流体流动以及热传导的计算机程序。它提供了完全的网格灵活性,用户可以使用非结构网格,例如二维三角形或四边形网格、三维四面体/六面体/金字塔形网格来解决具有复杂外形的流动,甚至可以使用混合型非结构网格。软件允许用户根据解的具体情况对网格进行修改(细化/粗化)。
fluent作业运行步骤如下:
1.通过xftp上传执行fluent程序所需要的文件(.cas .dat).cas和.dat后缀文件的名字自定义。
2.编写fluent.jou文件。
.jou文件是fluent的脚本文件,fluent.jou文件需要单独编写。
以下是fluent.jou脚本编写框架:
fluent分瞬态和稳态
稳态的fluent.jou写法:
/file/read-case C-10.cas ###算例输入文件###
/file/read-data C-10.dat ###算例输入文件###
/solve/iterate 1000 ###算例跑多少步,根据实际情况改步数###
exit
yes
瞬态的fluent.jou写法:
/file/read-case C-10.cas ###算例输入文件###
/file/read-data C-10.dat ###算例输入文件###
/file/auto-save/data-frequency 500 ###算例500步自动保存一次,根据实际情况改保存步数###
/solve/set/time-step 0.0001 ###算例步长为0.0001,根据实际情况改###
/solve/dual-time-iterate 50000 80 ###算例总共跑50000步,每步迭代80次###
exit
yes
3.编写slurm脚本文件:
#!/bin/bash
#SBATCH -J test
#SBATCH -p cpu
#SBATCH -n 64
#SBATCH --error=%J.err
#SBATCH --output=%J.out
srun -n 64 hostname -s > hostlist ###将主机名写到hostlist文件,给fluent调用
/fs0/software/ansys/17.1/v171/fluent/bin/fluent -ssh -g 3ddp -t64 -cnf=hostlist -mpi=intel -i fluent.jou
参数释义:
-g run without GUI or graphics(无需图形或图形即可运行)
-t<x> specify number of processors <x>(指定处理器数量)
-cnf=<x> specify the hosts file(指定主机文件)
-mpi=<mpi> specify MPI implementation; <mpi>={openmpi | intel | ...} (指定 MPI 实现)
-i=<journal> read the specified journal file(读取指定的日志文件)
维度和精度: 2d(2维单精度)、2ddp(2维双精度)、3d(3维单精度)和3ddp(3维双精度)
Lammps
主要用于分子动力学相关的一些计算和模拟工作,一般来讲,分子动力学所涉及到的领域,LAMMPS代码也都涉及到了。
lammps作业运行脚本示例:
#!/bin/bash
#SBATCH -J test
#SBATCH -p cpu
#SBATCH -n 64
#SBATCH --error=%J.err
#SBATCH --output=%J.out
module load intel/2017u5 #加载intel环境变量
module load lammps/7Aug19 #调用lammps环境变量
mpirun -np 64 lmp_mpi < in.cutting
scontrol show job $SLURM_JOBID
提交作业:
sbatch lammps.job