GROMACS是常用的分子动力学模拟软件之一,利用GPU加速可较快地运行模拟。
在作者进行的不严谨的速度测试中,模拟的包含水分子在内的约6万个原子的蛋白质体系,24核CPU上速度约20 ns/day,利用-pme gpu -nb gpu -bonded gpu -update gpu 将主要任务均加载中GPU上时,利用T4速度约80 ns/day,利用V100速度约150 ns/day,A100速度约250 ns/day (CPU为常见服务器CPU)。可见利用GPU加速可较大促进模拟速度。
一. GROMACS的安装:
GROMACS是免费开源的分子动力学软件,目前最新版本是2022.1。
1. 服务器选择
根据需要选择GPU服务器,在配置时选择后台安装CUDA驱动,建议选择较新版本驱动及CUDA,对GROMACS-2022而言,需要CUDA版本大于11.0。官网说明11.3可能安装有问题,未测试;已测试11.0及11.4安装GROMACS2022.1可成功。按以下操作在Ubuntu或CentOS操作系统中安装可成功,其他系统未测试,ubuntu需要将/root/换成/home/ubuntu/。
首次配置需要等待数分钟直到cuda安装完成。
1. 安装cmake
cmake如果自己有.sh包,直接上传最快,安装或者下载都需要一定时间,如果cmake安装报错也建议考虑找.sh文件。
下载较新的cmake版本,如3.23.1 (如果提示缺少C ,需要安装,CentOS的命令为dnf install gcc-c )
wget https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1.tar.gz
tar -xvf cmake-3.23.1.tar.gz
cd cmake-3.23.1
./bootstrap
./configure --prefix=/root/cmake
make
make install
等待安装完成(可用-j指定cpu核数),或者下载编译好的cmake版本,解压并在后续指定路径(bash ./cmake-3.23.1-Linux-x86_64.sh,不过下载速度很慢,自己有包可以上传)。
2. 安装GROMACS
下载所需版本的GROMACS,如2022.1
cd
wget https://ftp.gromacs.org/gromacs/gromacs-2022.1.tar.gz
tar -xvf gromacs-2022.1.tar.gz
cd gromacs-2022.1
mkdir build
cd build
/root/cmake-3.23.1/bin/cmake .. -DCMAKE_INSTALL_PREFIX=/root/gmx -DGMX_BUILD_OWN_FFTW=ON -DGMX_GPU=CUDA
make install (-j指定CPU核数)
(其中-DGMX_BUILD_OWN_FFTW=ON代表安装过程自动安装下载fftw库,如果下载太慢可自己先安装好,大多数时候下载速度应该可接受,-DGMX_GPU=CUDA代表安装GPU支持的版本,支持GPU的版本不能用双精度,正常情况下也不需要双精度版本,其他路径的cmake把前面路径改了,最后make install -jx 指定CPU核数)
等待安装完成即可,如果最后提示无权限用sudo make install
正常安装成功不用管这一段,如果后续提示nvcc未安装,在系统选择时选中了自动安装cuda的情况下,修改~/.bashrc,并在后面加上:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.0/lib64
export PATH=$PATH:/usr/local/cuda-11.0/bin
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-11.0/lib64
export CUDA_HOME=/usr/local/cuda-11.0
(如果是不同的cuda版本,可cd /usr/local,然后ls查看具体版本及目录)
3. 使用
如果使用按量计费服务器,可在后续验证安装成功后保存镜像。
设置环境变量:
source /root/gmx/bin/GMXRC
输入gmx --version如果显示版本信息则安装成功。(如果安装mpi版本,需要gmx_mpi,双精度版本需要gmx_d,如果不是自己安装的可在/root/gmx/bin/查看具体安装的版本)
每次加载镜像后需要输入此命令。如果长期购买也可在~./bashrc设置。
二. 简单使用
GROMACS官网溶菌酶教程较为详细,可照着做一遍熟悉流程,然后套用自己的蛋白继续熟悉,最后按需求(如文献)调整参数。运行时间较长,最后一步可后台运行。
nohup gmx mdrun -deffnm md &
GROMACS会自动分配任务在GPU或者CPU上计算,也可用gmx mdrun -nt 4 -pin on -pme gpu -nb gpu -bonded gpu -update gpu deffnm md将主要任务都放在GPU上。
前面nvt及npt平衡过程通常较快,如果实际过程时间较慢也可后台运行。在运行命令中加上-v可显示实时进度及预计结束时间,这里给出的时间估计看起来较为准确。
GROMACS自带了一些力场,需要用到其他力场时,下载并放在工作目录下即可,在构建拓扑时最前面就会出现新加的力场选项。