GROMACS-GPU版如何在Linux&HPC并行计算集群上安装与使用?

目录

一、Gromacs简介

二、GROMACS2024.2版本新特性

三、GROMACS-GPU安装说明

四、安装步骤

4.1 安装cmake 3.x版本

4.2 安装FFTW 库

4.3 安装并行编译器MPI或者使用已有的MPI

4.4 安装GROMACS (前提以安装好cuda及驱动)


一、Gromacs简介

GROMACS是主要用来进行分子动力学模拟的一个通用开源的免费的程序包,可以模拟数百个到数百万个规模粒子系统运动的牛顿方程组。该软件包由荷兰Groningen大学生物物理化学系的Herman Berendsens主持开发,也包括德国Max Planck研究所的一些研究人员。它主要设计用来模拟蛋白质和脂质这样的生物分子,也可以用来研究诸如聚合物等非生物分子体系。

GROMACS支持目前常见的几乎所有分子动力学算法,包括各种热浴、压浴以及静电相互作用计算等等。不过,与其它分子动力学软件相比,它的优势依然很明显,主要表现在计算速度超快,核心计算代码都由汇编语言写成;支持基于MPI的并行计算;包括模拟体系构建工具和前后处理分析工具在内的大量实用程序。

GROMACS除了支持现代分子动力学的常见算法,还有一些颇具竞争力的新特色:

(1)   GROMACS对代码进行了很多算法上的和针对不同硬件的优化,执行效率通常比其它同类程序高3-10倍

(2)   GROMACS界面友好

(3)   不用脚本语言,所有程序使用简单的命令行选项接口用于输入和输出文件。程序还提供支持全部程序模块的图形用户界面

(4)   进行计算时,GROMACS会告诉用户用了多少时间,以及预计还需要多长时间

(5)   输入文件和轨迹文件与硬件无关,因此可以被不同版本的GROMACS读取。程序还具有向下兼容性

(6)   通过使用有损耗压缩技术,提供了存储轨迹文件的紧凑方法

(7)   大量用于轨迹分析的工具,并可提供数学分析软件Xmgr/Grace格式的图

(8)   轨迹浏览器,只需要标准X的支持

(9)   使用标准MPI通信进行并行计算

(10) GROMACS对一些算法的源码做了优化,可以极大地提高计算效率却不损失计算精度

(11) 包含完全自动的拓扑生成器,产生蛋白质甚至是多聚体的结构

二、GROMACS2024.2版本新特性

  • 修复了 mdrun 可能行为不正确的问题使用 AdaptiveCpp/hipSYCL 防止崩溃
  • 工具修复gmx
  • 改进来自 editconf 和 trjconv 的错误消息
  • 避免使用损坏的 xtc 文件出现浮点异常
  • 使 Colvars 文件备份方案与 GROMACS 一致
  • 在 AMD Zen 4 上启用带有 AVX-512 SIMD 的 Intel 编译器 
  • 修复 cuFFTMp 编译问题
  • 修复了最新 NVIDIA GPU 上某些情况下的性能降低问题 
  • 修复 NbnxmSetupTest.CanCreateNbnxmGPU 中的崩溃 
  • 修复了文档中用于批量重新分区的错误 mdp 关键字 

三、GROMACS-GPU安装说明

       下面介绍的是GROMACS 2018系列最后一个版本2018.8版的安装,对GROMACS 2018及之后的各个版本经测试也完全适用。本文安装环境采用最常用的CentOS 7.6操作系统编写而成,对于其它Linux系统的用户,安装方法及参数使用上可能与本文有异,因此万不可照搬照抄。安装过程中如果联网安装更加方便,此处采用离线安装方式。本文编译用的C++编译器是操作系统自带的gcc;此外 Intel C++编译器也可以,编译出的程序的速度没有显著差别。
        从GROMACS 2020开始,要求gcc编译器版本>=5,而CentOS 7.x的gcc版本是4.8.5,因此2020版需要使用高版本的gcc版本。从GROMACS 2021开始,还要求cmake版本必须>=3.17。GROMACS 2024.2要求cmake版本必须>=3.18.4 ,另外值得一提的是,如果你的gcc很新而GROMACS版本较老,也可能编译不过去,比如我发现Rocky Linux 9自带的gcc 11.2.1编译GROMACS 2018.8就无法编译通过,2024.2版本官方推荐gcc版本为9.x和11.x。

       关于对NVIDIA GPU的支持,GROMACS-2024.2版本要求最低支持的CUDA版本为11.0,官方强烈建议使用最新的cuda版本及驱动程序,但需要注意的是,在旧硬件上使用新CUDA版本可能出现性能下降等问题,虽然一些CUDA编译器(nvcc)可能不正式支持最新版本的gcc作为后端编译器,但我们仍然建议您至少使用最新版本的gcc,以便为您的CPU获得最佳的SIMD支持,因为GROMACS总是在CPU上运行一些代码。对于GROMACS代码,使用与nvcc主机编译器相同的c++编译器版本是最可靠的。

     为了使用其他加速器成为可能,GROMACS还包括OpenCL支持作为可移植的GPU后端。所需的最小OpenCL版本未知,仅支持64位实现。目前的OpenCL实现建议与基于gcn的AMD gpu一起使用,在Linux上我们建议使用ROCm运行时。Neo驱动支持Intel集成gpu。NVIDIA gpu也支持OpenCL,但建议使用最新的NVIDIA驱动程序(其中包括NVIDIA OpenCL运行时)。还要注意,有性能限制(固有的NVIDIA OpenCL运行时)。OpenCL不可能同时支持Intel和其他厂商的gpu。OpenCL的64位实现是必需的,因此OpenCL只支持64位平台。

     关于对GPU-MPI的支持,对于NVIDIA GPU,2024.2版建议使用的并行库OpenMPI版本>=4.1.0 ,UCX版本>=1.10,而对于intel MPI 要求不低于2018.8版本,对于AMD GPU海光DCU来说,要求使用的OpenMPI版本>=4.1.4 ,UCX>=1.13,并且能够与海光DCU的ROCm兼容,因此在安装GROMACS之前需要提前将以上软件编译安装好。

关于软件其它详细内容介绍请参考GROMACS官网进行查阅Installation guide - GROMACS 2024.2 documentation

四、安装步骤

4.1 安装cmake 3.x版本

GROMACS 2018需要cmake版本在3.x才能编译。CentOS 7.6自带的cmake版本太老,因此需要先装cmake 3

1.首先运行以下命令,添加EPEL源
yum install epel-release
2.网站http://www.cmake.org/cmake/resources/software.html下载cmake包,然后解压,进入其目录,运行

./bootstrap --prefix=/path/to/cmake3 -- -DCMAKE_USE_OPENSSL=OFF
make -j
make install


就新产生了/path/to/cmake3目录。然后删掉cmake解压的目录。之后在~/.bashrc里加入export PATH=$PATH:/path/to/cmake3/bin。重新进入终端后,cmake命令就可以用了。

4.2 安装FFTW 库

1.GROMACS 2018依赖于快速傅立叶变换库FFTW 3.3.8,可以在http://www.fftw.org/fftw-3.3.8.tar.gz下载。将其压缩包解压,进入此目录后运行

./configure --prefix=/path/to/fftw338 --enable-sse2 --enable-avx4 --enable-avx2 --enable-float --enable-shared


其中--enable-float代表编译单精度。不加此参数默认为double双精度
2.然后运行make -j install开始编译,过一会儿编译完毕后,就出现了/path/to/fftw338目录。
以上语句代表FFTW将被安装到/path/to/fftw338目录,之后在~/.bashrc里加入export PATH=$PATH: path/to/fftw338/lib。重新进入终端后,cmake命令就可以用了。

4.3 安装并行编译器MPI或者使用已有的MPI

GROMACS跨节点并行计算需要MPI库,支持OpenMPI>=1.6、MPICH>=1.4.1。在编译这种GROMACS之前首先要安装MPI库,这里用OpenMPI。去http://www.open-mpi.org下载OpenMPI最新版本,解压并进入此目录后运行以下命令,就会编译并安装OpenMPI到/path/to/openmpi目录:

/configure --prefix=/path/to/openmpi
make all install -j 8


之后在用户目录下的.bashrc末尾加入以下两行,导出环境变量
 

export PATH=$PATH:/path/to/openmpi/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/openmpi/lib

4.4 安装GROMACS (前提以安装好cuda及驱动)

1.下载GROMACS 2018.8压缩包,地址为ftp://ftp.gromacs.org/pub/gromacs/gromacs-2018.8.tar.gz。
2.进入解压后的目录,在终端里依次运行

mkdir build
cd build
export CMAKE_PREFIX_PATH=/path/to/fftw338
cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/gmx2018.8 -DGMX_SIMD=AVX2_256 -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda -DGMX_MPI=ON
make install -j 8

此时程序就被编译和安装到了/path/to/gmx2018.8目录下。修改用户目录下的.bashrc文件,在末尾加入source /path/to/gmx2018.8/bin/GMXRC,然后保存。

注意:GPU版本注意事项,如果你装的是GROMACS >= 2021版,-DGMX_GPU=ON应改为-DGMX_GPU=CUDA。

指令集选取注意事项:-DGMX_SIMD=AVX2_256(hygon,amd处理器需要,intel处理器建议删除会自动识别)

安装路径:Linux或HPC并行计算集群用户,需要将软件安装到共享存储上,以便其它节点也可以访问到

之后关闭终端窗口,再次打开终端,输入gmx_mpi -version,看看是否输出了GROMACS的相关信息,是的话就说明安装成功了。之后可以把GROMACS压缩包和解压出来的目录删掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术瘾君子1573

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值