跳转至

gromacs

Gromacs是用于研究生物分子体系的分子动力学程序包。它可以用分子动力学、随机动力学或者路径积分方法模拟溶液或晶体中的任意分子,进行分子能量的最小化,分析构象等。它的模拟程序包包含Gromacs力场(蛋白质、核苷酸、糖等),研究的范围可以包括玻璃和液晶、到聚合物、晶体和生物分子溶液。Gromacs是一个功能强大的分子动力学的模拟软件,其在模拟大量分子系统的牛顿运动方面具有极大的优势。

1. 安装

CPU版本安装

# 获取源码
export VERSION=2021.3
wget --no-check-certificate https://ftp.gromacs.org/gromacs/gromacs-${VERSION}.tar.gz

# 解压
tar xf gromacs-${VERSION}.tar.gz
cd gromacs-${VERSION}

# 编译安装
# 导入编译环境,avx512需要高版本gcc支持
module load openmpi/3.1.3-gcc-7.2.0
module load cmake/3.13.1-gcc-4.8.5

# cpu版本安装
export CC=gcc CXX=g++
mkdir build ; cd build

# -DGMX_SIMD=AVX_512 需要在支持avx512的CPU处理器上才可编译成功
PREFIX=/gpfs/share/software/gromacs/2021.3/gcc-7.2.0/opempi-3.1.3
cmake .. -DGMX_BUILD_OWN_FFTW=ON -DGMX_MPI=ON -DGMX_SIMD=AVX_512 -DCMAKE_INSTALL_PREFIX=$PREFIX
make && make install

GPU版本安装

# gpu版本的编译需要在gpu节点上执行
# 获取源码
export VERSION=2021.3
wget --no-check-certificate https://ftp.gromacs.org/gromacs/gromacs-${VERSION}.tar.gz

# 解压
tar xf gromacs-${VERSION}.tar.gz
cd gromacs-${VERSION}

# 编译安装
# 导入编译环境,avx512需要高版本gcc支持
module load openmpi/3.1.3-gcc-7.2.0
module load cmake/3.13.1-gcc-4.8.5

# cpu版本安装
export CC=gcc CXX=g++
mkdir build_gpu ; cd build_gpu

# -DGMX_SIMD=AVX_512 需要在支持avx512的CPU处理器上才可编译成功
PREFIX=/gpfs/share/software/gromacs/2021.3_gpu/gcc_7.2.0/opempi_3.1.3
cmake .. -DGMX_BUILD_OWN_FFTW=ON -DGMX_GPU=CUDA -DGMX_MPI=ON -DGMX_SIMD=AVX_512 -DCMAKE_INSTALL_PREFIX=$PREFIX
make && make install

提交作业

Step 1. 创建工作目录并进入;

mkdir gromacsJob1
cd gromacsJob1

Step 2. 将运行gromacs需要的相关文件上传到该文件夹下;

Step 3. 在该文件夹下编写作业脚本,并命名为gromacsJob1.sh,脚本内容如下;

#!/bin/bash
#SBATCH -o slurm.%j.%N.out    
#SBATCH --partition=C032M0128G    
#SBATCH -J gromacsJob1
#SBATCH -N 2
#SBATCH --ntasks-per-node=32
#SBATCH --get-user-env 

# 导入运行环境
module load openmpi/3.1.3-gcc-6.4.0
module load gromacs/2019.2-openmpi-3.1.3-gcc-6.4.0

# 生成跨节点运行需要的machinefile
srun hostname -s | sort -n > slurm.hosts

# 前处理过程,生成tpr格式输入文件
gmx_mpi grompp -f pme.mdp -c conf.gro -p topol.top -o topol_pme.tpr 

# MPI 跨节点执行
mpirun -n 64  -machinefile slurm.hosts  gmx_mpi mdrun -nsteps 40000 -s topol_pme.tpr

Step 3. 提交作业;

sbatch gromacsJob1.sh