GROMACS
应用介绍
GROMACS是一个用于分子动力学模拟和能量最小化的计算引擎。它可以用分子动力学、随机动力学或者路径积分方法模拟溶液或晶体中的任意分子,进行分子能量的最小化,分析构象等。
Gromacs可以使用CPU和GPU来进行计算,在使用GPU时,单GPU卡的运行效率最高,因此建议使用单卡资源池的GPU进行运算。
使用指南
平台安装有CPU版和GPU版,安装路径分别为/opt/app/gromacs/2019.3
和/opt/app/gromacs/2019.3_gpu
。
注意
在私有实例中的Gromacs只能单机运行,集群中的Gromacs可以通过Slurm提交作业并行运行。
私有实例
先申请资源。
提示
Gromacs可能会有多种配置,比如GPU版本或CPU版本,请根据自己所需申请。
启动完毕后点击“控制台”进入终端。
如果是CPU版本,输入如下命令运行:
$ /opt/app/gromacs/2019.3/bin/gmx_mpi
如果是GPU版本,输入如下命令运行:
$ /opt/app/gromacs/2019.3_gpu/bin/gmx_mpi
集群提交
集群提交需要用到Slurm。Slurm的使用和各参数说明请参见该指南。
配置输入文件bench_gpu.tpr,
建立脚本文件
vim gromacs_job.sh
在脚本文件内添加内容,其中指明输出文件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版本。
用
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卡。