PDF文库 - 千万精品文档,你想要的都能搜到,下载即用。

Gromacs软件安装使用指南2.0ustc.pdf

My Sunshine 我的阳光12 页 988.542 KB下载文档
Gromacs软件安装使用指南2.0ustc.pdfGromacs软件安装使用指南2.0ustc.pdfGromacs软件安装使用指南2.0ustc.pdfGromacs软件安装使用指南2.0ustc.pdfGromacs软件安装使用指南2.0ustc.pdfGromacs软件安装使用指南2.0ustc.pdf
当前文档共12页 2.88
下载后继续阅读

Gromacs软件安装使用指南2.0ustc.pdf

1 软件介绍 Gromacs 是一个开源的、高效的、基于标准 MPI 并行环境设计的大规模分子动力学并行程序,基 于 Gromacs 分子力场,由荷兰的 Groningen 大学 Department of Biophysical Chemistry 开发。Gromacs 主 要执行生物大分子如蛋白质、核酸、磷脂等物质的计算,也可研究非生物的有机大分子系统,如高分 子多聚体等。Gromacs 可免费下载使用,详情参阅:http://www.gromacs.org/ 2 安装环境 Gromacs 版本:GROMACS 2018 操作系统:Ubuntu 16.04 编译器:GCC cuda: 9.0 fftw: 3.3.5 cmake: 3.5.1 mpi: openmpi-3.0-gnu 3 安装步骤 3.1 CUDA 到 https://developer.nvidia.com/cuda-downloads 下载对应操作系统的 cuda 安装包。下载后执行: sh NVIDIA-Linux-x86_64-384.125.run 然后按照相关的提示输入安装路径即可,本文选择默认路径。详细安装步骤可以参考 CUDA 9 安装 手册。 环境变量: cat /etc/profile.d/cuda-env.sh export PATH=/usr/local/cuda-9.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib:/usr/local/cuda9.0/lib64:$LD_LIBRARY_PATH 3.2 fftw 库 从 FFTW-3.3.5 开始,应该添加参数--enable-avx2,如果 CPU 支持 512 位宽,添加参数--enableavx512 单精度编译: ./configure --prefix=/public/software/mathlib/fftw337-float --enable-float --enable-avx2 --enable-shared make make install 双精度编译: ./configure --prefix=/public/software/mathlib/fftw337-double avx2 --enable-shared make make install --enable- 3.3 cmake Gromacs 2018.1 要求 cmake 要在 3.4.3 版本或者以上。 上传 cmake-3.4.3.tar.gz 安装包到/public/sourcecode 下。 tar zxvf cmake-3.4.3.tar.gz cd cmake-3.4.3 ./configure --prefix=/public/software/cmake-3.4.3 make make install 环境变量: cat /public/software/profile.d/cmake-env.sh export PATH=/public/software/cmake-3.4.3/bin:$PATH 3.4 mpi 编译器和 openmpi-3.0.0-gnu 安装。 目前 gromacs.2018.1 在 gpu 环境下选择 openmpi-3.0-gnu 可以安装成功,没有 gpu 环境的时候选择 openmpi-3.0.0-gnu 和 openmpi-3.0.0-intel 都可以。 3.5 Gromacs 源码编译 下 载 gromacs-2018.3.tar.gz 安 装 包 到 /public/sourcecode 下 , 下 面 可 以 登 录 网 页 : http://manual.gromacs.org/documentation/ 目前最新版为 Gromacs 2018.3。然后在此目录下执行如下命令: tar zxvf gromacs-2018.3.tar.gz cd gromacs-2018.3 mkdir build-gmx-single #此目录名可以随便取 cd build-gmx-single #到此目录下编译 source /public/software/profile.d/cmake-env.sh #选择 cmake source /public/software/profile.d/openmpi-gnu-env.sh #选择 mpi cmake 编译: cmake ../ \ -DCMAKE_INSTALL_PREFIX=/public/software/gromacs-2018.1 \#安装目录 -DGMX_MPI=on \ #开启 mpi -DGMX_GPU=on \ #这一行和下一行为 gpu 选项,没有 gpu 的时候去掉这两行。 -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \ -DCMAKE_C_COMPILER=mpicc \ -DCMAKE_CXX_COMPILER=mpicxx \ -DFFTWF_INCLUDE_DIR=/public/software/mathlib/fftw337-float/include \ #选择 3.2 节安装的 fftw337 库 -DFFTWF_LIBRARY=/public/software/mathlib/fftw337-float/lib/libfftw3f.so 或者使用下面的命令直接运行,DGMX_BUILD_OWN_FFTW=ON 会自动下载并编译 FFTW,注 意更改 cuda 的安装路径: cmake .. -DGMX_MPI=on -DGMX_GPU=on -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON make 编译: make –j N #N 为可用的 cpu 进程数。 make install 安装成功后会在/public/software/gromacs-2018.1/bin 下生成可执行文件,包括 gmx_mpi 等。 创建环境变量: vi /public/software/profile.d/gromacs-2018.3-env.sh GMX_INSTALL_DIR=/public/software/gromacs-2018.3 export PATH=${GMX_INSTALL_DIR}/bin:$PATH export LD_LIBRARY_PATH=${GMX_INSTALL_DIR}/lib:$LD_LIBRARY_PATH 3.6 Gromacs 基于 NGC Docker 安装 在 NVIDIA GPU Cloud(NGC)中,包含 Gromacs 的 docker 镜像文件,可以直接下载,导入 Linux docker 环境就可以使用。 注册 NGC 填写注册信息: 登录 NGC 系统 注册 NGC 后,登录 NGC 系统,就可以看到下图中所有的 HPC Apps 的 docker image 镜像。 Docker image 下载 下载 image 镜像之前,先要获取 API key: 点击 Get API Key,即可获得: 点击“Generate API Key”,并点击弹出对话框中的“Confirm”,系统会生成一个 API Key 作为 nvcr.io 的登录密码,并复制该 Password,用于登录: 在 Linux 客户端登录方式如下,作者是在 DGX-1 平台下,Ubuntu 16.04 的系统演示的,如下: 登录成功以后,就可以进行 Gromacs 容器下载,如下: 将命令“docker pull nvcr.io/hpc/gromacs:2016.4”复制到 Linux terminal: 启动 docker 并运行 Gromacs 使用 nvidia-docker 命令查看 Gromacs 容器镜像信息。 启动 docker 镜像: dgxsa@dgx1:~$ nvidia-docker run --name MyGromacs -v /home/dgxsa/chengyi/share:/data -it nvcr.io/hpc/gromacs:2016.4 /bin/bash docker run Options ➔ -i -t or -it :交互式,连接到一个"tty" ➔ --name :给容器命名 ➔ -v /home/dgxsa/chengyi/share:/data :将 host 主机的/home/dgxsa/chengyi/myshare 存储目 录映射到容器的 data 目录。 启动容器以后,就可以像在一台 Linux 服务器上操作了,里面已经配置好了所有运行环境,如果 需要安装其他软件,可以使用命令:apt-get install xxxx 进行安装。 如果想退出容器,可以使用命令:Ctrl+D 如果想删除容器,可以使用命令:nvidia-docker rm 408eaf27213c ; 408eaf27213c 为 docker-ID 如果想退出容器登录界面,但保持容器后台运行,可以使用命令:Ctrl+P,然后 Ctrl+Q 4 标准算例 4.1 准备算例 使用普通用户运行: su – test mkdir gmx-test cd gmx-test wget http://www.gromacs.org/@api/deki/files/128/=gromacs-gpubenchdhfr.tar.gz #或者上传算例包 gromacs-gpubench-dhfr.tar.gz 到此 tar zxvf gromacs-gpubench-dhfr.tar.gz cd dhfr source /public/software/profile.d/openmpi-gnu-env.sh source /public/software/profile.d/gromacs-2018.3-env.sh #加载环境变量 OpenMPI 的环境变量配置文件: MPI_HOME=/home/chengyi/software/openmpi-3.1 export PATH=${MPI_HOME}/bin:$PATH export LD_LIBRARY_PATH=${MPI_HOME}/lib:$LD_LIBRARY_PATH export C_INCLUDE_PATH=${MPI_HOME}/include:$C_INCLUDE_PATH export MANPATH=${MPI_HOME}/share/man:$MANPATH gromacs-2018.3-env.sh 的配置文件: GMX_HOME=/mnt/gromacs/gromacs-2018.3/buildgpu export PATH=${GMX_HOME}/bin:$PATH export LD_LIBRARY_PATH=${GMX_HOME}/lib:$LD_LIBRARY_PATH 4.2 手动运行算例 运行命令如下: cd dhfr/GPU/dhfr-solv-PME.bench/ gmx_mpi grompp -f gpu-PME.mdp mpirun --allow-run-as-root -np 8 gmx_mpi mdrun -ntomp 5 -nb gpu -nsteps 1000 -s topol.tpr 或: mpirun --allow-run-as-root -np 2 gmx_mpi mdrun -ntomp 5 -gpu_id 0,1 nsteps 1000 -s topol.tpr ntomp:表示每个 cpu 进程启动的 OpenMP 线程数 gpu_id:表示选择的 gpu,本例为 gpu_id 后面 0,1 表示使用 GPU ID 为 0,1 的 GPU;若使用所有 gpu,使用-nb gpu。 本例表示:启动 8 个 cpu 进程,每个 cpu 进程启动 5 个线程。 运行 nvidia-smi 会看到启动了八个 gpu 进程。 testverlet:是这个算例的需要。 -maxh:最大允许的计算时间 -g :输出的日志文件。 更多的参数可以运行 gmx_mpi mdrun -h 查阅。 Gromacs 运行 shell 脚本如下,黄色部分是需要修改的地方。 #!/bin/bash #export CUDA_VISIBLE_DEVICES=0,1,2,3 DIR_ROOT=/mnt/software/gromacs2018 source $DIR_ROOT/bin/GMXRC IDIR=/mnt/test/water-cut1.0_GMX50_bare/1536 IFILE=$IDIR/topol.tpr ODIR=/tmp LDIR=$ODIR/run/logs LFILE_ROOT=1536 WDIR=$ODIR/run/job mkdir -p $WDIR mkdir -p $LDIR cd $WDIR NSTEPS=10000 #NGPUS=`nvidia-smi | grep Tesla | wc -l` NGPUS=4 LASTCORE=$(lscpu | grep On-line | cut -f3 -d"-") THREADSPER=$(lscpu | grep Thread | cut -f2 -d":") export OMP_NUM_THREADS=$(( ( ((LASTCORE+1)/NGPUS) / THREADSPER) )) LOGFILE=${LDIR}/${LFILE_ROOT}.${NGPUS}.log # initialize if needed if [ ! -f ${IFILE} ] ; then cd ${IDIR} gmx_mpi grompp -f pme.mdp fi mpirun --allow-run-as-root -bind-to none -np ${NGPUS} gmx_mpi mdrun -g ${LOGFILE} -pin on -resethway -v -noconfout -nsteps ${NSTEPS} -s ${IFILE} 4.3 PBS 脚本范例 su – test cd gmx-test/dhfr/GPU/dhfr-solv-PME.bench/ 建立提交脚本 gromacs-gpu-single.pbs #!/bin/bash #PBS –N gromacs-gpu-single #PBS –q gpu #PBS –l nodes=node-with-gpu:ppn=4 #PBS –l walltime=100:00:00 source /public/software/profile.d/openmpi-gnu-env.sh source /public/software/profile.d/gromacs-2018.1-env.sh cd $PBS_O_WORKDIR NP=`cat $PBS_NODEFILE|wc -l` NN=`cat $PBS_NODEFILE|uniq –c|wc –l` #节点数 PPN=`cat $PBS_NODEFILE|uniq -c|sed -n '1,1p'|awk '{print $1}'`#每个节点的进 程数,本例中 PPN=4 GPUID=`printf %.${PPN}d 0` #本例中 GPUID=0000 mpirun –np $NP –hostfile $PBS_NODEFILE gmx_mpi mdrun -multi $NN -nb gpu –g md.log -nsteps 1000 -s topol.tpr 提交作业,并查看是否正确运行。 qsub gromacs-gpu-single.pbs qstat 4.4 Slurm 脚本范例 su – test cd gmx-test/dhfr/GPU/dhfr-solv-PME.bench/ 建立提交脚本 batch.gromacs-gpu-single #!/bin/bash #SBATCH --job-name=gromacs_test #SBATCH --nodes=1 #SBATCH --tasks-per-node=32 #SBATCH --gres=gpu:2 #SBATCH --ntasks-per-node=4 #SBATCH --cpus-per-task=8 #SBATCH --mem-per-cpu=4000 #SBATCH --time=24:00:00 # number of Nodes # number of MPI processes per node # memory limit per CPU (megabytes) # time limit (D-HH:MM:ss) module load gcc/6.4.0 openmpi/2.1.1 gromacs/2018.3 export OMP_NUM_THREADS="${SLURM_CPUS_PER_TASK:-1}" srun gmx_mpi mdrun -deffnm md 提交作业,并查看是否正确运行。 -maxh 24 5 Benchmark 测试 测试算例 water-cut1.0_GMX50_bare/1536,共 1.536M 个水分子,4.608M 个原子, NSTEPS=10000。 NVIDIA DGX-1 服务器配置: 2*Intel(R) Xeon(R) CPU E5-2698 v4 @ 2.20GHz 8*Tesla V100-SXM2 512GB DDR4 Memory CPU 进程数*每进程的 线程数+GPU 进程数 2 × 5+0 2 × 5+2 4 × 5+0 4 × 5+4 8 × 5+0 8 × 5+8 Performance(ns/day) Walltime(s) 加速比 0.703 3.550 1.139 4.469 2.322 8.147 1229.269 243.452 758.762 193.392 372.106 106.076 5.13 3.92 3.51 GPU 的加速效果分析:相同的 CPU 计算核数时的性能相比,GPU 可以可以显著提升计算性能。

相关文章