GROMACS

应用介绍

GROMACS是一个用于分子动力学模拟和能量最小化的计算引擎。它可以用分子动力学、随机动力学或者路径积分方法模拟溶液或晶体中的任意分子,进行分子能量的最小化,分析构象等。

Gromacs可以使用CPU和GPU来进行计算,在使用GPU时,单GPU卡的运行效率最高,因此建议使用单卡资源池的GPU进行运算。

使用指南

平台安装有CPU版和GPU版,安装路径分别为/opt/app/gromacs/2019.3/opt/app/gromacs/2019.3_gpu

注意

在私有实例中的Gromacs只能单机运行,集群中的Gromacs可以通过Slurm提交作业并行运行。

私有实例

  1. 申请资源

提示

Gromacs可能会有多种配置,比如GPU版本或CPU版本,请根据自己所需申请。

  1. 启动完毕后点击“控制台”进入终端。

如果是CPU版本,输入如下命令运行:

$ /opt/app/gromacs/2019.3/bin/gmx_mpi

如果是GPU版本,输入如下命令运行:

$ /opt/app/gromacs/2019.3_gpu/bin/gmx_mpi

集群提交

集群提交需要用到Slurm。Slurm的使用和各参数说明请参见该指南

  1. 配置输入文件bench_gpu.tpr,

  2. 建立脚本文件

vim gromacs_job.sh
  1. 在脚本文件内添加内容,其中指明输出文件bench_gpu.log,保存:

 1#!/bin/bash
 2#SBATCH --nodes=1
 3#SBATCH --cpus-per-task=16
 4#SBATCH --gres=gpu:1
 5
 6. /opt/intel/bin/compilervars.sh intel64
 7#module load app/gromacs/2019.3/gpu
 8INPUT=step7.1.tpr
 9OUTPUT=bench_gpu.log
10export PATH=/opt/app/gromacs/2019.3_gpu/bin:$PATH
11
12mpirun gmx_mpi mdrun -dlb yes -v -nsteps 15000  -ntomp 40  -s ${INPUT} -g ${OUTPUT}

注意

以上脚本示范为GPU版本。

  1. sbatch提交脚本。

$ sbatch gromacs_gpu.sh

多GPU卡单任务

 1#!/bin/bash
 2#SBATCH --nodes=1
 3#SBATCH --ntasks-per-node=1
 4#SBATCH --cpus-per-task=40
 5#SBATCH --partition=gpu1
 6#SBATCH --gres=gpu:4
 7
 8. /opt/intel/bin/compilervars.sh intel64
 9INPUT=step7.1.tpr
10OUTPUT=bench_gpu.log
11export PATH=/opt/app/gromacs/2019.3_gpu/bin:$PATH
12mpirun -np 4 gmx_mpi mdrun -pin on -ntomp 10 -nb gpu -bonded gpu -pme gpu  -npme 1 -nstlist 400 -v -nsteps 15000  -noconfout -s ${INPUT} -g ${OUTPUT}

多GPU卡多任务

以下给出GROMACS如何在一个机器上用多张GPU卡跑多个任务的示例:

 1#!/bin/bash
 2#SBATCH --nodes=1
 3#SBATCH --job-name="syn"
 4#SBATCH --ntasks-per-node=3
 5#SBATCH --partition=gpu1
 6#SBATCH --gres=gpu:3
 7
 8. /opt/intel/bin/compilervars.sh intel64
 9#mpi run /opt/app/gromacs/2019.3_gpu/bin/gmx_mpi
10export PATH=/opt/app/gromacs/2019.3_gpu/bin:$PATH
11export LD_LIBRARY_PATH=/opt/app/gromacs/2019.3_gpu/lib:$LD_LIBRARY_PATH
12cd  /home/liurr17/LRR/again/BP-SARS-03
13gmx_mpi mdrun -v -deffnm md -cpi md.cpt -ntomp 10 -gpu_id 0 &>run.log &
14cd  /home/liurr17/LRR/again/COV-sep3
15gmx_mpi mdrun -v -deffnm md -cpi md.cpt -ntomp 10 -gpu_id 1 &>run.log &
16cd  /home/liurr17/LRR/again/SARS-sep3
17gmx_mpi mdrun -v -deffnm md -cpi md.cpt -ntomp 10 -gpu_id 2 &>run.log

-gpu_id n表示使用指定的gpu卡。