计算化学公社

标题: GROMACS的安装方法(含全程视频演示) [打印本页]

作者
Author:
sobereva    时间: 2019-1-2 20:03
标题: GROMACS的安装方法(含全程视频演示)
注:GROMACS通常在Linux下运行,本文只讲在Linux下的编译和安装方法。GROMACS在Windows下也照样可以完美编译和运行,参见《GROMACS的原生Windows版的编译和安装方法》(http://sobereva.com/458),里面还提供了笔者编译好的Windows版。

GROMACS的安装方法
Installation method of GROMACS

文/Sobereva@北京科音
First release: 2019-Jan-2  Last update: 2025-Feb-15

本文对最流行的分子动力学GROMACS程序在Linux下的安装方法进行详细说明。当新出的GROMACS版本的安装方法和本文所述出现较大差异时,本文也会做相应的更新。PS:之前笔者也写过老版本GROMACS安装方法,见《Gromacs 5.1.1与4.6.7编译方法》(http://sobereva.com/247)和《Gromacs 4.0.4、4.5.5版安装方法》(http://sobereva.com/29),但这俩文章对于目前版本来说已经没有意义了。

下面介绍的是GROMACS 2018系列最后一个版本2018.8版的安装,对GROMACS 2018及之后的各个版本经测试也完全适用(一直到2025.x版我都测试过)。本文最初是针对当时计算化学工作者最常用的CentOS 7操作系统写的,实测对CentOS/RockyLinux 8、9也完全适用。对于其它Linux系统的用户,安装方法可能与本文有异。本文的CentOS 7.6是按照《在VMware 15中安装CentOS 7.6的完整过程视频演示》(http://sobereva.com/454)演示的方式完全新装的。本文假定读者是root用户,程序将被安装到/sob目录下。如果你是普通用户,请随机应变,恰当设置路径。本文所示的安装过程中主机全程都能访问Internet。本文编译用的C++编译器是操作系统自带的gcc,虽然用Intel C++编译器也可以,但编译出的程序的速度没有显著差别。


从GROMACS 2020开始,要求gcc编译器版本>=5,而CentOS 7.x的gcc版本是4.8.5,因此2020版没法直接在CentOS 7.x下装。要么升级gcc版本(有一定风险,方法自行google),要么用老一点的GROMACS,要么用CentOS/RockyLinux >=8.0版。
从GROMACS 2021开始,还要求cmake版本必须>=3.17,而CentOS/RockyLinux 8的软件源里的cmake版本偏老,因此必须按照下文所述手动安装cmake。
从GROMACS 2025开始,还要求gcc 11,CentOS/RockyLinux 8的gcc太老而无法安装。还要求cmake版本必须>=3.28,RockyLinux 9的软件源里的cmake版本偏老,因此必须按照下文所述手动安装cmake。

另外值得一提的是,如果你的gcc较新而GROMACS版本较老,也可能编译不过去,比如我发现Rocky Linux 9自带的gcc 11.2.1编译GROMACS 2018.8就无法编译通过。

下面安装的是纯CPU运算、单精度、能单机并行但不能跨节点并行的版本。如果需要GPU加速或跨节点或双精度运算,看文末的附注。本文用make的时候使用了-j选项以通过并行编译降低编译耗时,但个别情况下可能导致编译出错,在虚拟机下编译还有卡住的可能,届时请去掉-j再试。下文的安装过程有全程视频演示,初学者不熟悉Linux的话请严格效仿着安装:https://www.bilibili.com/video/av39749252/

顺带一提,如果你刚接触GROMACS,想一次性完整系统学习分子动力学模拟知识和GROMACS程序的使用和实际应用的话,非常推荐参加北京科音分子动力学与GROMACS培训班(http://www.keinsci.com/workshop/KGMX_content.html


1 安装cmake 3.x

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

首先运行以下命令,添加EPEL源
yum install epel-release

然后在终端里输入yum install cmake3即可下载和安装cmake包,遇到提示的时候都输入y。之后输入cmake3 /V命令,如果显示出了3.x的版本号就说明没问题了。

注1:如果用yum的时候出现乱七八糟的提示安装不了,把操作系统重启一下往往就好了。

注2:如果你没有管理员权限或者不方便用yum安装cmake,或者当前系统对应的软件源里的cmake版本太老(如果已经装了cmake可以运行cmake -V命令查看版本),可以去http://www.cmake.org/cmake/resources/software.html下载cmake包(下载Source distributions的,别下载成binary的),然后解压,进入其目录,运行
./bootstrap --prefix=/sob/cmake3 -- -DCMAKE_USE_OPENSSL=OFF
make -j
make install
就新产生了/sob/cmake3目录。然后删掉cmake解压的目录。之后在~/.bashrc里加入export PATH=$PATH:/sob/cmake3/bin。重新进入终端后,cmake命令就可以用了。


2 安装FFTW库

GROMACS 2018依赖于快速傅立叶变换库FFTW 3.3.8,可以在http://www.fftw.org/fftw-3.3.8.tar.gz下载。将其压缩包解压,进入此目录后运行
./configure --prefix=/sob/fftw338 --enable-sse2 --enable-avx --enable-float --enable-shared
以上语句代表FFTW将被安装到/sob/fftw338目录。如果你的CPU相对较新,支持AVX2指令集,可再加上--enable-avx2选项以获得更好性能。

然后运行make -j install开始编译,过一会儿编译完毕后,就出现了/sob/fftw338目录。然后可以把FFTW的解压目录和压缩包删掉了。


3 安装GROMACS

下载GROMACS 2018.8压缩包,地址为http://ftp.gromacs.org/pub/gromacs/gromacs-2018.8.tar.gz。然后将之拷到/sob目录下解压。进入解压后的目录,在终端里依次运行
mkdir build
cd build
export CMAKE_PREFIX_PATH=/sob/fftw338
cmake3 .. -DCMAKE_INSTALL_PREFIX=/sob/gmx2018.8(如果你是用的CentOS 8或更新的系统,或者手动编译的cmake,这里cmake3改为cmake。另外,这一步运行后也仔细看看屏幕上的提示,了解当前CPU支持的最佳的SIMD指令集有没有正确判断对。如果你的CPU较新却用较老的GROMACS,可能支持的SIMD根本没识别出来,此时GROMACS的mdrun运行速度会非常慢)
make install -j
在Intel四核机子下不到10分钟就能编译完毕(对2024.1版,我在双路EPYC 7R32 96个物理核心的机子上只花了1分钟左右就编译完毕)。

此时程序就被编译和安装到了/sob/gmx2018.8目录下。修改用户目录下的.bashrc文件(比如运行gedit ~/.bashrc),在末尾加入source /sob/gmx2018.8/bin/GMXRC,然后保存。

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

注意,在使用gmx mdrun跑任务时,如果一开始提示WARNING: Using the slow plain C kernels. This should not happen during routine usage on supported platforms,说明编译时没有利用CPU的SIMD指令集(正常情况理应自动检测并利用),这样编译出来的mdrun的运行速度往往比理想情况慢N倍。此时需要重新编译,在使用cmake3的时候明确指定要用的指令集,比如如果你的CPU支持AVX2指令集(XEON v3系列及之后都支持)就加上-DGMX_SIMD=AVX2_256。


注1:在安装GROMACS过程中自动安装FFTW库

实际上,FFTW库可以不必手动安装,因为可以在安装GROMACS时自动下载并安装FFTW库。但由于国内链接FFTW官网服务器往往比较慢,自动下载FFTW库可能中途卡住或者过程巨慢,因此还是建议手动方式安装FFTW库。如果你确实打算自动安装FFTW库的话,将上文第2节直接忽略掉,也不必设export CMAKE_PREFIX_PATH=/sob/fftw338,把第3节的cmake3那一步额外加上-DGMX_BUILD_OWN_FFTW=ON选项即可,这样编译GROMACS时就会自动在FFTW官网上下载FFTW包并自动编译之。

注2:编译支持CUDA GPU加速的版本

GROMACS目前支持对nVidia的GPU通过CUDA方式的加速,也支持以OpenCL方式对其它厂商的GPU实现GPU加速(但功能有局限性)。对于用CUDA方式加速,先去https://developer.nvidia.com/cuda-downloads下载CUDA toolkit并安装到默认路径,之后编译GROMACS方法同前,区别仅是cmake3这一步额外加上-DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda选项(以实际CUDA tookit安装路径为准)。如果你装的是GROMACS >= 2021版,-DGMX_GPU=ON应改为-DGMX_GPU=CUDA。

之后运行gmx mdrun运算时,会自动使用机子里的GPU进行加速。如果又不想使用GPU加速了,那得按照上文方式编译一个只支持CPU运算的版本并放到不同的路径,并且把.bashrc改成source那个版本的GMXRC(如果编译时你没写-DGMX_GPU但也自动检测出CUDA toolkit并编译出了GPU版本,加上-DGMX_GPU=OFF强制避免编译成GPU版)。

注3:编译双精度版本

一般计算只需要按照前述编译单精度版本就够了,但如果模拟刚开始就崩溃,有时候用双精度版本可解决,但计算比单精度版慢将近一倍、trr/edr等文件体积大一倍。另外,做正则振动分析时在能量极小化和对角化Hessian矩阵的时候一般也需要用双精度版以确保数值精度。注意,编译双精度版本时不支持GPU加速。

要编译双精度版本的话,先按照前文方式编译一遍单精度版本,毕竟这之后在研究中肯定也得用。然后再重复一遍编译过程,但是在编译FFTW时去掉--enable-float,并且在使用cmake3命令时额外加上-DGMX_DOUBLE=ON选项。双精度版本的GROMACS可执行文件是gmx_d,而单精度是gmx,因此单精度和双精度的可执行文件可以同时存在于同一目录,互不冲突。

注4:编译GROMACS的MPI版本

GROMACS跨节点并行计算需要MPI库,支持OpenMPI>=1.6、MPICH>=1.4.1。在编译这种GROMACS之前首先要安装MPI库,这里用OpenMPI。去http://www.open-mpi.org下载OpenMPI最新版本,解压并进入此目录后运行以下命令,就会编译并安装OpenMPI到/sob/openmpi目录:
./configure --prefix=/sob/openmpi
make all install -j
之后在用户目录下的.bashrc末尾加入以下两行
export PATH=$PATH:/sob/openmpi/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/sob/openmpi/lib
然后重新进入终端使以上语句生效。之后编译GROMACS的方法同前,但在cmake3那一步额外加上-DGMX_MPI=ON选项。编译出来的可执行文件是gmx_mpi,比单机版本的可执行文件多了_mpi后缀。运行时候使用比如这样的命令:mpirun -np 16 gmx_mpi mdrun。

注:对于root用户,OpenMPI要求每次执行mpirun命令都得带着-allow-run-as-root选项才行,这很烦人,但可以通过在编译OpenMPI之前修改OpenMPI的源代码来避免,见《root用户在用openmpi并行计算时避免加--allow-run-as-root的方法》(http://sobereva.com/409)。

顺带一提,笔者在答疑时经常看到有人明明用的是单机并行,却非要装个MPI版GROMACS,这需要批评。因为这不仅需要多做一步,而且比起用默认方式基于thread-MPI和OpenMP的并行方式效率还更低,因此单机并行装MPI版完全是自取其辱

注5:关于AVX512指令集

编译GROMACS时,如果你的CPU相对较新,支持AVX512指令集的话,程序可能会自动基于AVX512指令集进行编译。但如果你的机子上的gcc版本太老,不支持AVX512的话就会报错。如果根据屏幕上的提示确认是由于gcc不支持AVX512指令集而无法进行编译,可以按照http://bbs.keinsci.com/thread-12687-1-1.html中的做法更新gcc,或者索性不用AVX512指令集,即cmake3那一步加上-DGMX_SIMD=AVX2_256来使用AVX2指令集。

作者
Author:
我本是个娃娃    时间: 2019-1-2 20:09
It can be seen that the videos of GMX installation needn't to be sent to the members who are going to join the training course of GMX and Molecular dynamics
作者
Author:
catenarygong    时间: 2019-1-3 00:58
本帖最后由 catenarygong 于 2019-1-3 01:06 编辑

SOrry I didn't mention the icc/gcc part. Thanks for your information.

作者
Author:
sobereva    时间: 2019-1-3 06:52
刚测试了下,gmx2019按照此文方法编译也完全适用
作者
Author:
lijiayisjtu    时间: 2019-1-3 09:55
谢谢老师分享!
作者
Author:
CayJ    时间: 2019-1-17 21:26
SOB老师,那Windows系统该如何安装呢?
作者
Author:
sobereva    时间: 2019-1-18 00:18
CayJ 发表于 2019-1-17 21:26
SOB老师,那Windows系统该如何安装呢?

GROMACS的原生Windows版的编译和安装方法
http://sobereva.com/458http://bbs.keinsci.com/thread-11848-1-1.html
作者
Author:
CayJ    时间: 2019-1-18 08:57
sobereva 发表于 2019-1-18 00:18
GROMACS的原生Windows版的编译和安装方法
http://sobereva.com/458(http://bbs.keinsci.com/thread-118 ...

SOB老师,GROMACS的原生Windows版支持molclus计算吗?
作者
Author:
sobereva    时间: 2019-1-18 13:59
CayJ 发表于 2019-1-18 08:57
SOB老师,GROMACS的原生Windows版支持molclus计算吗?

和操作系统毫无关系
不管哪个系统下跑出来的轨迹都是一样的,都能用VMD载入并转换
作者
Author:
xaomidaxue    时间: 2019-1-20 15:36
本帖最后由 xaomidaxue 于 2019-3-14 08:29 编辑

安装提示升级gcc,升级了一个多小时https://www.cnblogs.com/lzpong/p/5755678.html,升级后显示gcc 6.0.1
但是编译的时候出现如下错误,请教一下sober老师该怎么处理,谢谢!
cmake3 .. -DCMAKE_INSTALL_PREFIX=/home/gromacs-2018
CMake Error at cmake/gmxTestCXX11.cmake:135 (message):
  GROMACS requires version 4.8.1 or later of the GNU C++ compiler for
  complete C++11 support
Call Stack (most recent call first):
  CMakeLists.txt:168 (gmx_test_cxx11)


-- Configuring incomplete, errors occurred!
See also "/home/gromacs-2018/build/CMakeFiles/CMakeOutput.log".
See also "/home/gromacs-2018/build/CMakeFiles/CMakeError.log".
[root@yezh build]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/6.1.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
Thread model: posix
gcc version 6.1.0 (GCC)



作者
Author:
sobereva    时间: 2019-1-20 16:37
xaomidaxue 发表于 2019-1-20 15:36
安装提示升级gcc,升级了一个多小时https://www.cnblogs.com/lzpong/p/5755678.html,升级后显示gcc 6 ...

严格按照帖子操作。没有特殊情况别升级gcc,省得出现额外问题
作者
Author:
xaomidaxue    时间: 2019-1-20 17:46
本帖最后由 xaomidaxue 于 2019-1-20 17:53 编辑
sobereva 发表于 2019-1-20 16:37
严格按照帖子操作。没有特殊情况别升级gcc,省得出现额外问题

严格按照帖子来操作,还是提示上述错误,说Gromacs需要4.8.1以上的gcc版本,但是我的都是6.0.1的版本了,还不行,不知道怎么回事?fftw和cmake都是按照上面操作的,cmake是3.6.1的版本。会不会是gromac 编译的时候无法识别gcc的版本,导致报错。我的是cent os 6.7的版本,被我按照提示升级到了6.0.1了。
谢谢sober老师。

作者
Author:
sobereva    时间: 2019-1-20 18:32
xaomidaxue 发表于 2019-1-20 17:46
严格按照帖子来操作,还是提示上述错误,说Gromacs需要4.8.1以上的gcc版本,但是我的都是6.0.1的版本了, ...

8成是bug,太新了反倒认不对版本
作者
Author:
xaomidaxue    时间: 2019-1-21 08:26
sobereva 发表于 2019-1-20 18:32
8成是bug,太新了反倒认不对版本

多谢sober老师,我用4.8.1的版本试试
作者
Author:
lao7    时间: 2019-1-23 11:47
谢谢SOB。
作者
Author:
lao7    时间: 2019-1-23 12:42
本帖最后由 lao7 于 2019-1-23 13:16 编辑

这个,如果不安装openmpi并行软件,这个gromacs软件仅仅一个CPU核心运行吗?谢谢!
作者
Author:
sobereva    时间: 2019-1-23 17:18
lao7 发表于 2019-1-23 12:42
这个,如果不安装openmpi并行软件,这个gromacs软件仅仅一个CPU核心运行吗?谢谢!

默认用所有核并行,跨节点才需要openmpi,文中写明了
作者
Author:
lao7    时间: 2019-1-23 22:45
sobereva 发表于 2019-1-23 17:18
默认用所有核并行,跨节点才需要openmpi,文中写明了

谢谢SOB。跨接点,指的是不同的计算机联网并行计算的意思吧?不明白计算机。我按照您的指导,安装了openmpi的那个安装方法。单台多核心计算机(2颗CPU),应该不会影响并行计算吧?
作者
Author:
sobereva    时间: 2019-1-23 23:16
lao7 发表于 2019-1-23 22:45
谢谢SOB。跨接点,指的是不同的计算机联网并行计算的意思吧?不明白计算机。我按照您的指导,安装了openm ...

单机并行不需要openmpi
作者
Author:
lao7    时间: 2019-1-23 23:24
sobereva 发表于 2019-1-23 23:16
单机并行不需要openmpi

谢谢!那我重新安装一下。
作者
Author:
lastzealot    时间: 2019-1-30 20:29
谢谢老师
作者
Author:
h840473807    时间: 2019-3-8 10:10
xaomidaxue 发表于 2019-1-20 17:46
严格按照帖子来操作,还是提示上述错误,说Gromacs需要4.8.1以上的gcc版本,但是我的都是6.0.1的版本了, ...

你的问题解决了吗?我也是类似的情况,在CentOS 6的机子上安装,报错提示我的gcc是4.4.1的,版本不够,可我用命令gcc -v看到我的版本分明是4.8.5。后来在搜索引擎上搜了下相关报错提示,看到
export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++
之后可以解决。
我在export CMAKE_PREFIX_PATH=/sob/fftw338后又敲了以上两行命令,果然可以正常编译了,也许能解决你的问题
作者
Author:
pangnier    时间: 2019-3-13 14:22
按照视频装FFTW之后没有出现新的fftw338文件夹,也没见报错。
作者
Author:
sobereva    时间: 2019-3-13 14:52
pangnier 发表于 2019-3-13 14:22
按照视频装FFTW之后没有出现新的fftw338文件夹,也没见报错。

说明没有完全严格按照视频的步骤操作,或者软件环境和视频不符,需要根据提示随机应变
作者
Author:
justin1140    时间: 2019-3-14 21:33
老师,请问在VMWARE 15中也能稳定运行gromacs 跑几十纳秒的模拟吗
作者
Author:
sobereva    时间: 2019-3-15 06:42
justin1140 发表于 2019-3-14 21:33
老师,请问在VMWARE 15中也能稳定运行gromacs 跑几十纳秒的模拟吗

当然可以
作者
Author:
justin1140    时间: 2019-3-18 21:29
老师,严格按照您的步骤做的 还是没有出现fftw338文件夹  怀疑是不是和sober文件夹有关  老师您的soberr文件夹的路径是什么  
作者
Author:
sobereva    时间: 2019-3-18 23:52
justin1140 发表于 2019-3-18 21:29
老师,严格按照您的步骤做的 还是没有出现fftw338文件夹  怀疑是不是和sober文件夹有关  老师您的soberr文 ...

没有叫soberr的文件夹
完整流程都体现在视频里了,照着视频操作解决不了的我也没法解答了
作者
Author:
胡说    时间: 2019-3-22 21:33
本帖最后由 胡说 于 2019-3-23 15:42 编辑

老师 你好请教个问题。
对于GPU加速的gmx,请问一般选择多少CPU核心数合适?发现CPU给多了,有时速度反而会下降。而且合适的CPU核心数与体系也有关系。

作者
Author:
cep    时间: 2019-4-4 18:21
本帖最后由 cep 于 2019-4-4 18:23 编辑

C:\Users\Administrator.USER-20180630PR\Desktopsob老师,安装gromacs中make3 .. -DCMAKE_INSTALL_PREFIX=/sob/gmx2018.4这步一直出错,还望老师指点下,不胜感激
作者
Author:
sobereva    时间: 2019-4-5 05:31
cep 发表于 2019-4-4 18:21
sob老师,安装gromacs中make3 .. -DCMAKE_INSTALL_PREFIX=/sob/gmx2018.4这步一直出错,还望老师指点下,不 ...

这一步之前没定义环境变量指定找fftw库的位置,严格照着帖子或视频里的操作就不会有这个问题
作者
Author:
rtransformation    时间: 2019-5-28 17:51
sob老师,我现在在用Manjaro,编译Gromacs的时候,一到百分之四五十的时候就卡死,就是硬盘灯一直亮着,然后电脑就卡着动不了了。
然后用aur的库,yay自动安装就没有问题,这是咋回事呢,yay里面默认的安装方式和您贴子里的会有啥差别?
作者
Author:
sobereva    时间: 2019-5-29 05:50
rtransformation 发表于 2019-5-28 17:51
sob老师,我现在在用Manjaro,编译Gromacs的时候,一到百分之四五十的时候就卡死,就是硬盘灯一直亮着,然 ...

如果用了-j就去掉,如果本来就没用-j,那我不清楚,这系统我没用过
作者
Author:
Marisa    时间: 2019-7-23 17:32
谢谢sob老师,安装成功
作者
Author:
liuyjhx    时间: 2019-9-28 08:59
老师请问我安装中出现下面问题应该怎么解决?
[root@localhost build]# cmake3 .. -DCMAKE_INSTALL_PREFIX=/lxj/gmx2019.3
-- Checking for module 'fftw3f'
--   No package 'fftw3f' found
-- pkg-config could not detect fftw3f, trying generic detection
Could not find fftw3f library named libfftw3f, please specify its location in CMAKE_PREFIX_PATH or FFTWF_LIBRARY by hand (e.g. -DFFTWF_LIBRARY='/path/to/libfftw3f.so')
CMake Error at cmake/gmxManageFFTLibraries.cmake:89 (MESSAGE):
  Cannot find FFTW 3 (with correct precision - libfftw3f for mixed-precision
  GROMACS or libfftw3 for double-precision GROMACS).  Either choose the right
  precision, choose another FFT(W) library (-DGMX_FFT_LIBRARY), enable the
  advanced option to let GROMACS build FFTW 3 for you
  (-DGMX_BUILD_OWN_FFTW=ON), or use the really slow GROMACS built-in fftpack
  library (-DGMX_FFT_LIBRARY=fftpack).
Call Stack (most recent call first):
  CMakeLists.txt:743 (include)


-- Configuring incomplete, errors occurred!

作者
Author:
liuyjhx    时间: 2019-9-28 09:21
liuyjhx 发表于 2019-9-28 08:59
老师请问我安装中出现下面问题应该怎么解决?
[root@localhost build]# cmake3 .. -DCMAKE_INSTALL_PREFIX ...

问题找到了,谢谢老师
作者
Author:
猴子好坏    时间: 2019-11-3 17:28
想问一下sob老师
输入指令不出现fftw338文件夹同时试了一下另一个方法也不行该怎么解决呀
作者
Author:
sobereva    时间: 2019-11-4 09:48
猴子好坏 发表于 2019-11-3 17:28
想问一下sob老师
输入指令不出现fftw338文件夹同时试了一下另一个方法也不行该怎么解决呀

看不懂你的意思
这都是linux的基础问题,熟悉linux自然根据实际情况就知道怎么回事
作者
Author:
libido001    时间: 2019-11-13 10:29
初来乍到,学习一下。
作者
Author:
exity    时间: 2019-11-15 15:42
社长,突然发现用阿里的epel源镜像,能直接 yum install gromacs,请问直接yum的gmx能用吗?我安装了试验了一下是 2018.8的版本,由于我刚刚接触MD,所以还看不出是否有其他的缺陷。俺的问题是:直接yum的gmx能用吗?您可以不可以帮忙看一下。
作者
Author:
sobereva    时间: 2019-11-16 12:59
exity 发表于 2019-11-15 15:42
社长,突然发现用阿里的epel源镜像,能直接 yum install gromacs,请问直接yum的gmx能用吗?我安装了试验了 ...

不建议用
作者
Author:
chengdi123000    时间: 2019-11-21 20:31
SOB大神,现在MKL似乎可以随便用了,在CentOS下安装也比较简单。
参考: https://software.intel.com/en-us/articles/installing-intel-free-libs-and-python-yum-repo

  1. sudo yum-config-manager --add-repo https://yum.repos.intel.com/setup/intelproducts.repo
  2. sudo rpm --import https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
  3. sudo yum search intel-mkl -y
  4. sudo yum install -y intel-mkl-2019.5-075.x86_64
复制代码

作者
Author:
steve    时间: 2019-11-30 10:05
学习一下,赞
作者
Author:
lao7    时间: 2019-12-2 13:36
我的CPU E5 2680 v3,编译-DGMX_SIMD=AVX2_256出错,是不是不支持AVX2_256?但运行gromacs时,出现SIMD提示:None, but for this host/run AVX_256 might be better. 咋回事呢?理论上如果程序检测不到CPU支持AVX2_256,应该不会出现这种提示。

我查了一下,好像是AVX2_64,,我编译时启用了-DGMX_SIMD=AVX2,理论上应该编译了AVX2_64,但不确定,哪里能查到编译AVX2_64成功与否?
作者
Author:
lao7    时间: 2019-12-2 13:37
xaomidaxue 发表于 2019-1-20 15:36
安装提示升级gcc,升级了一个多小时https://www.cnblogs.com/lzpong/p/5755678.html,升级后显示gcc 6 ...

还需要升级gcc-c++吧,你这个?

作者
Author:
steve    时间: 2019-12-3 15:31
赞。。完美!!!
作者
Author:
oywdz    时间: 2019-12-21 22:59
老师你好,我在编译openmpi的时候,在make install这一步总是出现下面这行
warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
一直编译不成功,不知道什么原因
作者
Author:
sobereva    时间: 2019-12-22 00:38
oywdz 发表于 2019-12-21 22:59
老师你好,我在编译openmpi的时候,在make install这一步总是出现下面这行
warning: setlocale: LC_CTYPE: ...

跟软件环境有关
CentOS下从没见过。如果是其它系统建议改用CentOS。或者google搜弄清楚怎么回事
作者
Author:
sobereva    时间: 2020-1-6 17:53
更新:gromacs 2020开始要求gcc版本>=5,导致CentOS 7.x无法直接安装,这点在本文进行了提及。
作者
Author:
OIrH    时间: 2020-9-13 07:37
pangnier 发表于 2019-3-13 14:22
按照视频装FFTW之后没有出现新的fftw338文件夹,也没见报错。

您好,我也遇到同样的问题,请问您是怎么解决的?
作者
Author:
OIrH    时间: 2020-9-13 07:50
猴子好坏 发表于 2019-11-3 17:28
想问一下sob老师
输入指令不出现fftw338文件夹同时试了一下另一个方法也不行该怎么解决呀

您好,我也遇到同样的问题,请问您是怎么解决的?
作者
Author:
Seeyoukid    时间: 2020-9-24 10:28
sob老师你好,我在装Gromacs时遇到了一个问题,在论坛上也没有搜到类似的提问。所以来请教您。我在CentOS 7.6版本装Cmake3.18, 我重新设了链接到usr/bin/cmake, 改了bashrc文件,查版本号也能查到。但是装Gromacs的时候,运行cmake..一直提示说找不到command。。这个怎么解决?新手被这个弄傻了
作者
Author:
sobereva    时间: 2020-9-24 12:00
Seeyoukid 发表于 2020-9-24 10:28
sob老师你好,我在装Gromacs时遇到了一个问题,在论坛上也没有搜到类似的提问。所以来请教您。我在CentOS 7 ...

本身的命令是cmake3。如果cmake3能运行,说明符号链接没创建正确
作者
Author:
snljty    时间: 2020-9-24 12:40
Seeyoukid 发表于 2020-9-24 10:28
sob老师你好,我在装Gromacs时遇到了一个问题,在论坛上也没有搜到类似的提问。所以来请教您。我在CentOS 7 ...

是你忘打空格了还是你打的命令就是cmake..。命令是cmake空格..
作者
Author:
Seeyoukid    时间: 2020-9-24 15:36
我打的是cmake.. 右下角两个点吗
作者
Author:
Seeyoukid    时间: 2020-9-24 15:50
谢谢了 在cmake先加个空格就可以了
作者
Author:
Seeyoukid    时间: 2020-9-24 19:07
装Gromacs的时候提示说Doxygen没装。于是我在Doxygen上下载了新版本,装的时候运行cmake .. -G"Unix Makefiles" 提示说这个不在CMake的lists上。请问这个应该怎么办?
作者
Author:
Seeyoukid    时间: 2020-9-26 12:48
请问一下,regressiontest怎么安装?我手动下载好了执行什么命令装上去?按照视频里面的指令执行 它总是不成功,自动下载到100%然后说connection dead。
作者
Author:
sobereva    时间: 2020-9-26 19:14
Seeyoukid 发表于 2020-9-26 12:48
请问一下,regressiontest怎么安装?我手动下载好了执行什么命令装上去?按照视频里面的指令执行 它总是不 ...

自行去gmx网站上下载并使用
一般完全没必要用那个做测试
作者
Author:
Seeyoukid    时间: 2020-9-26 20:06
我在CentOS7上用的cmake3 .. -DCMAKE_INSTALL_PREFIX=/sob/gmx2018.4, 然后会自动下载。关键是自动下载后时间巨长,然后会提示说connection dead。我按照官网的指令想手动下载或者把这个自动下载给关掉,这个指令怎么写?


作者
Author:
sobereva    时间: 2020-9-28 12:28
Seeyoukid 发表于 2020-9-26 20:06
我在CentOS7上用的cmake3 .. -DCMAKE_INSTALL_PREFIX=/sob/gmx2018.4, 然后会自动下载。关键是自动下载后 ...

我印象中,如果按照帖子里严格操作,是肯定不会自动下载regressiontest包的。没网的环境下也可以直接离线编译
作者
Author:
Seeyoukid    时间: 2020-9-29 18:26
sobereva 发表于 2020-9-28 12:28
我印象中,如果按照帖子里严格操作,是肯定不会自动下载regressiontest包的。没网的环境下也可以直接离线 ...

好 那我把网断了试试

作者
Author:
Seeyoukid    时间: 2020-10-8 09:49
Sob, 装到15%左右的时候提示说internal c compiler killed. 这个怎么办?
作者
Author:
sobereva    时间: 2020-10-10 00:43
Seeyoukid 发表于 2020-10-8 09:49
Sob, 装到15%左右的时候提示说internal c compiler killed. 这个怎么办?

原因不好说。重新试一遍
作者
Author:
Seeyoukid    时间: 2020-10-12 16:18
sobereva 发表于 2020-10-10 00:43
原因不好说。重新试一遍

WARNING: Using the slow plain C kernels. This should
not happen during routine usage on supported platforms.

装Lysozome in water的时候 模拟nvt 卡住了,这个怎么弄?
作者
Author:
laide    时间: 2020-10-15 10:42
本帖最后由 laide 于 2020-10-15 11:36 编辑

老师你好,我在最后编译gromacs时报错了。在编译到4%时报了 Fatal error:can't create CMakeFiles,该咋办啊?
作者
Author:
gaohang912    时间: 2020-10-16 15:09
这个要顶,学习了!
作者
Author:
sobereva    时间: 2020-10-17 14:22
laide 发表于 2020-10-15 10:42
老师你好,我在最后编译gromacs时报错了。在编译到4%时报了 Fatal error:can't create CMakeFiles,该咋办啊 ...

删了当前目录,重新编译再试
作者
Author:
laide    时间: 2020-10-17 16:17
sobereva 发表于 2020-10-17 14:22
删了当前目录,重新编译再试

感谢大佬,终于安装好了
作者
Author:
Accelerator    时间: 2020-10-18 18:48
sob老师好,我按照文中方法,在安装CUDA版本的gromacs 2018时在cmake3一步提示nvcc fatal : Unsupported gpu architecture 'compute_30',请问如何解决?操作系统是CentOS 7,使用的是2060 6G的GPU,CUDA是按照NVDIA官网上写的rpm(network) yum方式安装的。
作者
Author:
sobereva    时间: 2020-10-19 04:01
Accelerator 发表于 2020-10-18 18:48
sob老师好,我按照文中方法,在安装CUDA版本的gromacs 2018时在cmake3一步提示nvcc fatal : Unsupported gp ...

一般都是CUDA toolkit和GPU驱动的版本兼容性所致,注意看官方页面介绍里当前CUDA toolkit兼容什么GPU驱动版本
作者
Author:
cheviax    时间: 2020-10-28 12:35
Ubuntu安装gromacs:
进终端,sudo apt install gromacs
然后就完事了……默认fftw库
作者
Author:
sobereva    时间: 2020-10-29 12:55
cheviax 发表于 2020-10-28 12:35
Ubuntu安装gromacs:
进终端,sudo apt install gromacs
然后就完事了……默认fftw库

这种方式装预编译的GROMACS没有充分利用本机CPU的最佳的SIMD
作者
Author:
cheviax    时间: 2020-10-31 15:19
sobereva 发表于 2020-10-29 12:55
这种方式装预编译的GROMACS没有充分利用本机CPU的最佳的SIMD

确实,而且版本也比较老
作者
Author:
monky    时间: 2020-12-6 11:13
justin1140 发表于 2019-3-18 21:29
老师,严格按照您的步骤做的 还是没有出现fftw338文件夹  怀疑是不是和sober文件夹有关  老师您的soberr文 ...

请问这个问题后面解决了吗
作者
Author:
rice    时间: 2021-1-1 03:47
本帖最后由 rice 于 2021-1-1 03:58 编辑

卢老师,我按照帖子的方式安装2019.6、2019.4,总是失败。试过用户和管理员,都不行。cmake版本为3.9.2。自己下载傅里叶变换库和按帖子中注1提到的自动下载,cmake期间均是出现图示错误, (, 下载次数 Times of downloads: 216) 没法到最后一步。系统为CentOS 7.6。电脑已经装了CUDA10.1, (, 下载次数 Times of downloads: 227) ,按照老师说的在camke时加上路径,和不加时报错一致。请问您和其他老师有什么建议呢?
作者
Author:
rice    时间: 2021-1-1 11:43
rice 发表于 2021-1-1 03:47
卢老师,我按照帖子的方式安装2019.6、2019.4,总是失败。试过用户和管理员,都不行。cmake版本为3.9.2。自 ...

问题已经解决了,在cmake部分额外添加-DGMX_SIMD=AVX2_256,就可以正常编译安装了
作者
Author:
tjuptz    时间: 2021-1-8 21:11
注:对于有GPU和CUDA驱动的机器,即便不加-DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda选项,也会自动尝试编译GPU版本。如果不想编译GPU的,用-DGMX_GPU=off关掉。
另外,即便是GPU版本的,应该也可以通过mdrun的 -nb cpu  -pme cpu -bonded cpu(2018.8没有-bonded 选项)来关闭GPU;如果是孤立分子体系pbc=no,不用上述选项应该也会自动关闭GPU的使用。
也就是说,GPU机器似乎不用重新编译非GPU版本吧。
作者
Author:
Bergen    时间: 2021-1-22 20:44
老师 我在运行cmake3 .. -DCMAKE_INSTALL_PREFIX=/sob/gmx2018.4
显示
CMake Error: The source directory "/sob/gromacs-2018.4" does not appear to contain CMakeLists.txt.

Specify --help for usage, or press the help button on the CMake GUI.
请问这是什么问题
作者
Author:
sobereva    时间: 2021-1-23 06:44
Bergen 发表于 2021-1-22 20:44
老师 我在运行cmake3 .. -DCMAKE_INSTALL_PREFIX=/sob/gmx2018.4
显示
CMake Error: The source director ...

路径弄错了,严格参照帖子编译
作者
Author:
sobereva    时间: 2021-1-31 18:59
经测试,此文安装方法对于新发布的GROMACS 2021依然适用,但需要用较新的cmake,在文中已增加了说明
作者
Author:
abicaizhan    时间: 2021-3-31 11:52
SOB老师,目前我按照您这边的教程,安装GPU版的Gromacs,遇到的问题见下,您这边有什么解决思路或是方案么?

[root@gpumaster build]# export CMAKE_PREFIX_PATH=/home/zbc/fftw338
[root@gpumaster build]# cmake3 .. -DCMAKE_INSTALL_PREFIX=/home/zbc/gmx2019.4 -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda
CMake Warning (dev) at /usr/share/cmake3/Modules/FindPackageHandleStandardArgs.cmake:272 (message):
  The package name passed to `find_package_handle_standard_args` (pygments)
  does not match the name of the calling package (Sphinx).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  cmake/FindPythonModule.cmake:76 (find_package_handle_standard_args)
  cmake/FindSphinx.cmake:73 (find_python_module)
  docs/CMakeLists.txt:71 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /opt/gromacs-2019.4/build
[root@gpumaster build]# make install -j
[  0%] Building NVCC (Device) object src/gromacs/gpu_utils/tests/CMakeFiles/gpu_utilstest_cuda.dir/gpu_utilstest_cuda_generated_devicetransfers.cu.o
[  1%] Built target libgromacs_external
[  1%] Built target lmfit_objlib
[  3%] Built target tng_io_obj
[  3%] Built target tng_io_zlib
[  3%] Built target mdrun_objlib
[  3%] Built target view_objlib
nvcc fatal   : Unsupported gpu architecture 'compute_30'
CMake Error at gpu_utilstest_cuda_generated_devicetransfers.cu.o.Release.cmake:220 (message):
  Error generating
  /opt/gromacs-2019.4/build/src/gromacs/gpu_utils/tests/CMakeFiles/gpu_utilstest_cuda.dir//./gpu_utilstest_cuda_generated_devicetransfers.cu.o


make[2]: *** [src/gromacs/gpu_utils/tests/CMakeFiles/gpu_utilstest_cuda.dir/gpu_utilstest_cuda_generated_devicetransfers.cu.o] Error 1
[  5%] Built target mdrun_test_objlib
make[1]: *** [src/gromacs/gpu_utils/tests/CMakeFiles/gpu_utilstest_cuda.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 31%] Built target libgromacs_generated
make: *** [all] Error 2

作者
Author:
sobereva    时间: 2021-3-31 12:21
abicaizhan 发表于 2021-3-31 11:52
SOB老师,目前我按照您这边的教程,安装GPU版的Gromacs,遇到的问题见下,您这边有什么解决思路或是方案么? ...

CUDA toolkit版本兼容性问题。换个较新的CUDA toolkit结合较新的GROMACS版本再试
作者
Author:
牧生    时间: 2021-3-31 12:23
abicaizhan 发表于 2021-3-31 11:52
SOB老师,目前我按照您这边的教程,安装GPU版的Gromacs,遇到的问题见下,您这边有什么解决思路或是方案么? ...

似乎你只解压了FFTW,并没有安装???
作者
Author:
abicaizhan    时间: 2021-3-31 14:38
本帖最后由 abicaizhan 于 2021-3-31 16:55 编辑

好的,谢谢SOB老师,目前我尝试了cuda11.1和不同版本的groamcs(2019.4,2020.4,2021.1),2019.4和2021.1报错和之前的一样,没啥变化。

2020.4的报错见下:
root@gpumaster gromacs-2020.4]# cd build/
[root@gpumaster build]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-7/root/usr --mandir=/opt/rh/devtoolset-7/root/usr/share/man --infodir=/opt/rh/devtoolset-7/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --with-default-libstdcxx-abi=gcc4-compatible --with-isl=/builddir/build/BUILD/gcc-7.3.1-20180303/obj-x86_64-redhat-linux/isl-install --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)
[root@gpumaster build]# export CMAKE_PREFIX_PATH=/opt/fftw338
[root@gpumaster build]# cmake3 .. -DCMAKE_INSTALL_PREFIX=/opt/gmx2020.4 -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.1
CMake Error at cmake/gmxTestCompilerProblems.cmake:72 (message):
  GCC version 5 or later required.  Earlier versions don't have full C++14
  support.
Call Stack (most recent call first):
  CMakeLists.txt:345 (gmx_test_compiler_problems)


-- Configuring incomplete, errors occurred!
See also "/opt/gromacs-2020.4/build/CMakeFiles/CMakeOutput.log".
See also "/opt/gromacs-2020.4/build/CMakeFiles/CMakeError.log".

很奇怪,gcc的版本升级了也没解决这个问题



作者
Author:
abicaizhan    时间: 2021-3-31 16:57
牧生 发表于 2021-3-31 12:23
似乎你只解压了FFTW,并没有安装???

fftw安装好了,非GPU版本的gromacs也是用的这个fftw,测试过是可用的
作者
Author:
rpestana94    时间: 2021-4-22 06:30
Professor Sob, one question, if I want both version (gpu and cpu) at the same time, how should be the bash file, if I do this "source /sob/gmx2018.8/bin/GMXRC" for the both version I assumed just the last one will actually take effects or just one of these can be installed?
作者
Author:
sobereva    时间: 2021-4-23 00:07
rpestana94 发表于 2021-4-22 06:30
Professor Sob, one question, if I want both version (gpu and cpu) at the same time, how should be th ...

Although you can install both versions, they cannot be simultaneously activated, only one can be used.
In fact, you can always use GPU version, when running on CPU is needed you can add corresponding mdrun options. For example, adding -nb cpu -pme cpu -bonded cpu
作者
Author:
rpestana94    时间: 2021-4-23 03:58
sobereva 发表于 2021-4-22 11:07
Although you can install both versions, they cannot be simultaneously activated, only one can be u ...

Thanks
作者
Author:
pcxlm1    时间: 2021-5-5 23:43
h840473807 发表于 2019-3-8 10:10
你的问题解决了吗?我也是类似的情况,在CentOS 6的机子上安装,报错提示我的gcc是4.4.1的,版本不够,可 ...

老师您好,我按照您说的加了两行代码,还是出现与xaomidaxue网友同样的错误,显示CMake Error at cmake/gmxTestCXX11. cmake:135(message): GROMACS requires version 4.8.1 or later of the GNU C++ compiler for complete C++11 support

我的gcc版本是6.4.0, linux 版本是CentOS 6.9

请问您是怎么编译成功的?是不是centos 6安装不了2018版本啊?
作者
Author:
喵星大佬    时间: 2021-5-6 02:41
pcxlm1 发表于 2021-5-5 23:43
老师您好,我按照您说的加了两行代码,还是出现与xaomidaxue网友同样的错误,显示CMake Error at cmake/g ...

如果你的gcc是自己编译的,看下安装的位置,自己export一下你的6.4版本gcc的位置
作者
Author:
h840473807    时间: 2021-5-6 08:45
pcxlm1 发表于 2021-5-5 23:43
老师您好,我按照您说的加了两行代码,还是出现与xaomidaxue网友同样的错误,显示CMake Error at cmake/g ...

从报错信息上看,还是gcc版本不够
你要先找到你最新版gcc和g++的位置,然后再声明,你的目录可能不是以下这个
export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++

作者
Author:
jiajh    时间: 2021-6-4 20:52
sobereva 发表于 2019-1-3 06:52
刚测试了下,gmx2019按照此文方法编译也完全适用

gmx2020版也适用,亲测
作者
Author:
HZW    时间: 2021-7-12 22:17
老师我编译GPU版的,结果找不到CUDA,
CUDA11.0和驱动都装好了。
(, 下载次数 Times of downloads: 112)
(, 下载次数 Times of downloads: 121)




作者
Author:
sobereva    时间: 2021-7-13 14:22
HZW 发表于 2021-7-12 22:17
老师我编译GPU版的,结果找不到CUDA,
CUDA11.0和驱动都装好了。

要GPU加速就用尽量新的gromacs版本
作者
Author:
HZW    时间: 2021-7-13 17:08
sobereva 发表于 2021-7-13 14:22
要GPU加速就用尽量新的gromacs版本

已解决,用软连接又装了一个CUDA
作者
Author:
xjw    时间: 2021-8-28 15:28
请问老师,为啥我的会显示这种错误啊,安装的是2021
作者
Author:
二两米饭    时间: 2021-11-25 10:17
大神,cmake3 编译GROMACS报错,如图所示,但是camke3确实是已经装好了啊。求助。。。
作者
Author:
sobereva    时间: 2021-11-26 10:57
二两米饭 发表于 2021-11-25 10:17
大神,cmake3 编译GROMACS报错,如图所示,但是camke3确实是已经装好了啊。求助。。。

看提示理解
当前说的是编译器的事,没说cmake3有问题
检查gcc装好没有
作者
Author:
16aDream    时间: 2021-11-27 11:27
测试了下,gpu版本的gromacs想不用gpu加速只要在mdrun加上-nb cpu就行,不用重新在不同路径放一个纯cpu版本。
multisimulation和副本交换之类的必须要用gmx_mpi, 所以有相关需求的话单机还是得装mpi版本




欢迎光临 计算化学公社 (http://ccc.keinsci.com/) Powered by Discuz! X3.3