GPU 加速的 Amber

现在,开始阅读此《GPU Ready Apps Guide》(GPU Ready 应用程序指南)。

Amber

AMBER 是专门针对生物分子系统模拟而开发的分子动力学应用程序。AMBER 支持 GPU 加速,可运行显式溶剂 PME 和隐式溶剂 GB 模拟。

最新版本的 AMBER 16 在 NVIDIA GPU 上的运行速度比仅使用 CPU 的系统快 15 倍*,从而使用户运行生物分子模拟的时间从几天缩短到几小时。使用 AMBER 时需要获得加利福尼亚大学的许可证 。

*双 CPU 服务器:英特尔 E5-2690 v4 @ 2.6GHz | 3.5GHz Turbo (Broadwell-EP) | NVIDIA® Tesla® P100 | ECC 关闭 | Autoboost 开启 | PME-JAC_NVE_2fs 数据集

AMBER 在 GPU 上的运行速度提高 15 倍

安装

系统要求

AMBER 可移植到任何安装有 C、C++ 和 Fortran 95 编译器的 Linux 版本上。AMBER 对于 GPU 要求非常高,因此最新的 GPU 能够提供最高的性能。请参阅推荐系统配置一节,以获取更多详细信息。 

下载和安装说明

可通过购买许可证的方式获得 AMBER 的源代码。可以在网站上找到关于此应用程序的详细信息。 

以下是编译过程的简要概述

1.下载 AMBER 和 ambertools 源代码档案文件

2.安装依赖项。如需关于在各种 Linux 分发版上安装 AMBER 依赖项的信息,请单击此处。如需更多信息,请参阅官方参考手册

3.解压缩软件包并设置 AMBERHOME 环境变量(针对 bash 显示在此处)

tar xvjf AmberTools16.tar.bz2
tar xvjf Amber16.tar.bz2
cd amber16
export AMBERHOME=`pwd` # bash、zsh、ksh 等
setenv AMBERHOME `pwd` # csh, tcsh

4. 配置 AMBER

构建脚本可能需要更新 AMBER 和/或 ambertools。每次收到提示时,请选择“y”接受相关内容。

./configure -cuda -noX11 gnu # 支持 CUDA,GNU 编译器
。/configure -cuda -mpi -noX11 gnu # 支持 CUDA 和 MPI,GNU 编译器

5. 构建 AMBER

make install -j8 # 使用 8 个线程进行编译

如果需要同时运行单个和多个 GPU,则必须针对包含 MPI 和不包含 MPI 的情况执行配置和构建步骤。 

./configure -cuda -noX11 gnu
make install -j32
./configure -cuda -mpi -noX11 gnu
make install -j32

要执行仅使用 CPU 的基准运行,还需要构建不支持 CUDA 的二进制文件。 

./configure -mpi -noX11 gnu
make install -j32

运行作业

在运行 AMBER 的 GPU 加速版本之前,请为您的 GPU 安装最新的 NVIDIA 显示驱动程序。

运行 AMBER 需要使用“pmemd.cuda”可执行程序。多 GPU 运行需要使用“pmemd.cuda.MPI”可执行程序(请参阅下载和安装说明以获取支持 MPI 的编译相关的信息)。对于多 GPU 运行,GPU 应位于同一物理节点,且所使用的 GPU 需要支持点对点通信才能获得最佳性能。

您还应该下载 AMBER16 基准测试套件,可从基准测试页面免费获取。这里我们假设您已下载基准测试并将其解压缩到名为 $BENCHMARKS 的目录。

命令行选项

建议在运行 AMBER 时将 GPU 加速频率设置为最大值,以获得最佳性能。在本例中,我们为 GPU 0 设置频率,并在第一行上将加速频率用于 Tesla K80,在第二行上将其用于 Tesla M40,在第三行上将其用于 Tesla P100。请注意,Geforce 设备可能没有可修改的加速频率。

nvidia-smi -i 0 -ac 2505,875 # K80
nvidia-smi -i 0 -ac 3004,1114 # M40
Nvidia-smi -i 0 -ac 715,1328 # P100

用于在单节点系统上运行 AMBER 的常规命令行:

$AMBERHOME/bin/pmemd.cuda -i {input} -o {output file} {options}

在多 GPU 系统上,AMBER 必须按下面指定的内容以 mpirun 运行:

mpirun -np <NP> $AMBERHOME/bin/pmemd.cuda.MPI -i {input} -o {output} {options}

{options}

1. -O:覆盖已存在的输出文件。

2. -o:指定要写入的输出文件的文件名

建议始终检查输出文件的开头,以确保所有 87 个参数都已经正确指定,尤其是 GPU。

{input}

使用下一小节中某个数据库中的相应输入文件(通常为 mdin.GPU)。

示例 1.在单个 GPU 上运行 JAC 生产 NVE(基准页面中的 DHFR (NVE) 2fs):

cd $BENCHMARKS/PME/JAC_production_NVE
$AMBERHOME/bin/pmemd.cuda -i mdin.GPU -O -o mdout

示例 2. 在 2 个 GPU 上运行纤维素生产 NPT(全部位于同一节点上):

cd $BENCHMARKS/PME/Cellulose_production_NPT
mpirun -np 2 $AMBERHOME/bin/pmemd.cuda.MPI -i mdin.GPU -O -o mdout

示例 3. 在 32 个 CPU 核心上运行纤维素生产 NPT(全部位于同一节点上):

cd $BENCHMARKS/PME/Cellulose_production_NPT
mpirun -np 32 $AMBERHOME/bin/pmemd.MPI -i mdin.CPU -O -o mdout

基准

本节演示了所选数据集的 GPU 加速。基准按照递增的原子序号列出。读取输出结果时的品质因数为“纳秒/天”(值越大越好),位于“mdout”文件中输出内容的结尾。最好对所有时间步长进行测量(而不是最后 1000 个步长)。

具有 GOOD 能量转换 2fs 的典型生产 MD NPT。
# of Atoms
23,558

Typical Production MD NPT with GOOD energy conservation, 2fs.

&cntrl
ntx=5, irest=1,
ntc=2, ntf=2, tol=0.000001,
nstlim=250000,
ntpr=2500, ntwx=2500,
ntwr=250000,
dt=0.002, cut=8.,
ntt=0, ntb=1, ntp=0,
ioutfm=1,
/
&ewald
dsum_tol=0.000001,
/

DHFR (JAC PRODUCTION) NPT 2FS

JAC (Joint Amber CHARMM) 生产 NPT 是 TIP3P 水箱中的 DHFR。它是具有 23,588 个原子(包括水)的小型基准之一。该基准使用显式溶剂模型 (PME) 运行。

具有 GOOD 能量转换的典型生产 MD NPT。
# of Atoms
90,906

Typical Production MD NPT with GOOD energy conservation.

&cntrl
ntx=5, irest=1,
ntc=2, ntf=2, tol=0.000001,
nstlim=70000,
ntpr=1000, ntwx=1000,
ntwr=10000,
dt=0.002, cut=8.,
ntt=0, ntb=1, ntp=0,
ioutfm=1,
/
&ewald
dsum_tol=0.000001
/

Factor IX NPT

FactorIX 是模拟凝血因子 IX 的基准。它由包括水在内的 90,906 个原子组成。水建模为显式 TIP3P 溶剂。此基准测试使用显式溶剂模型 (PME) 运行。

典型生产 MD NVT
# of Atoms
408,609

Typical Production MD NVT
 

& cntrl
ntx=5, irest=1,
ntc=2, ntf=2,
nstlim=14000,
ntpr=1000, ntwx=1000,
ntwr=8000,
dt=0.002, cut=8.,
ntt=1, tautp=10.0,
temp0=300.0,
ntb=2, ntp=1, barostat=2,
ioutfm=1,
/

纤维素 NPT

此基准测试模拟纤维素纤维。它是基准测试模拟的较大模型之一,具有 408,609 个原子(包括水)。水建模为显式 TIP3P 求解器。该基准使用显式溶剂模型 (PME) 运行。

预期性能结果

本节提供了不同的单节点和多节点系统的预期性能基准测试。

Amber (JAC_NVE) 在单节点服务器上的性能
Amber (FactorIX_NVE) 在单节点服务器上的性能
Amber (Cellulose_NPT) 在单节点服务器上的性能

推荐的系统配置

硬件配置

PC

参数
规格

CPU 架构

x86

系统内存

16-32GB

CPU 数

1-2

GPU 型号

NVIDIA TITAN X

GPU

1-2

服务器

参数
规格

CPU 架构

x86

系统内存

64-128GB

CPU 数

1-2

GPU 型号(适用于工作站)

Tesla® P100

GPU 型号(适用于服务器)

Tesla® P100

GPU

1-2 P100 PCIe
1-4 P100 SMX2

软件配置

软件堆栈

参数
版本

应用

AMBER 16

操作系统

Centos 7.2

GPU 驱动程序

375.20 或更高版本

CUDA 工具包

8.0 或更高版本

请参阅 Amber 的受支持 GPU 列表。

立即构建理想的 GPU 解决方案。