Amber18及AmberTools18编译

0. 概述

    Amber(Assisted Model Building with Energy Refinement)是一套生物分子模拟程序,起始于20世纪70年代末,软件经过几十年的发展,已被广泛应用于蛋白质,核酸,磷脂等生物大分子的模拟研究。Amber分为两部分,Amber主程序和AmberTools, 其中,Amber是收费软件包,而AmberTools 则可以在官网免费获取。
    此教程主要介绍了在Centos 7.4系统中通过源码对Amber18及AmberTools18进行编译。

1. 编译环境

1、 GNU编译器(Centos 7.4自带4.8.5版本即可)
2、 Centos 7.x
3、 CUDA 9.1(Amber18不支持CUDA 10及以上版本)

1.1 安装依赖库

yum -y install tcsh make gcc gcc-gfortran gcc-c++ which flex bison patch bc libXt-devel libXext-devel perl perl-ExtUtils-MakeMaker util-linux wget bzip2 bzip2-devel zlib-devel tar

2. Amber安装

自行获取Amber的压缩包

tar jxvf Amber18.tar.bz2
tar jxvf AmberTools18.tar.bz2

解压时先解压Amber,后续解压的AmberTools会自动解压至Amber在目录下。

2.2 环境变量设置(按实际路径设置)

vi ~/.bashrc  ##修改bashrc,将Amber的路径添加进去,同时编译GPU版本需要将CUDA的路径也添加进去。
#AMBER
test -f /mnt/sdd/software/amber/amber18/amber.sh  && source /mnt/sdd/software/amber/amber18/amber.sh
export AMBERHOME=/mnt/sdd/software/amber/amber18
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
更改完成后source ~/.bashrc

2.3 编译Amber

编译Amber按照串行版,并行版,GPU版本的顺序编译

2.3.1 编译串行版

cd Amber18
./configure --no-updates -noX11 gnu
make instal -j
##测试编译是否成功
make test

2.3.2 编译并行版

cd Amber18
./configure --no-updates -noX11 -mpi gnu
make instal -j
##检查测试编译是否成功
export DO_PARALLEL="mpirun --allow-run-as-root -np 4 ##并行版本测试需要先设置核数
make test

2.3.3 编译GPU版本

./configure --no-updates -noX11  -cuda gnu
make install -j
./configure --no-updates -noX11 -mpi  -cuda gnu  ##有多张显卡时可以编译GPU并行版
make install -j

3. Amber任务提交Slurm队列

3.1 CPU任务提交脚本范例

#!/bin/bash
#SBATCH -N 1
#SBATCH -p WHEEL
#SBATCH -n 8
#SBATCH -o output
#SBATCH --nodelist=compute-0-0
cd $SLURM_SUBMIT_DIR

mpirun -np 8 sander.MPI -O -i min_2ojn.in -o min_2ojn.out -p 2ojn.top -c 2ojn.crd -r min_2ojn.rst -inf min_2ojn.inf

3.2 GPU任务提交脚本范例

#!/bin/bash
#SBATCH -N 1
#SBATCH -p WHEEL
#SBATCH --cpus-per-task=8
#SBATCH --gpus-per-task=1
#SBATCH -o output
#SBATCH --nodelist=compute-0-0
cd $SLURM_SUBMIT_DIR
ulimit -s unlimited
source /home/lfpara/apps/intel/18/compilers_and_libraries_2018.5.274/linux/bin/compilervars.sh intel64
source /home/lfpara/apps/intel/18/compilers_and_libraries_2018.5.274/linux/mpi/intel64/bin/mpivars.sh intel64
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
mpirun -np 1 /home/app/vasp.6.1.0/bin/vasp_gpu