Gromacs2018的安装

Gromacs2018的安装

最近换到了外面的超算进行课题的计算,这个超算上自带的Gromacs并不好用,貌似都没有编译mpi,所以对于正常使用非常的不方便,所以我决定自己尝试着安装一遍

主要的安装步骤还是参考的sobereva的安装步骤

GROMACS的安装方法(含全程视频演示) - 思想家公社的门口:量子化学·分子模拟·二次元 (sobereva.com)

Cmake的安装

对于Cmake的安装我参考的是这个知乎的帖子:

Linux安装CMake - 知乎 (zhihu.com)

直接在官网上下载了一个编译好的压缩包,上传到服务器上解压,然后配置了一下环境变量,主要原因是这个超算的cmake版本是2.x的版本,而Gromacs2018需要Cmake3.x的版本才能编译(突然明白了为啥这个超算没有对Gromacs进行mpi编译了)

直接用编译好的版本就非常方便了,到官网上下载对应的版本:

官网的下载页面链接在这儿:

Download | CMake

下载好之后上传到服务器,解压:

1
tar -zvxf cmake-3.27.0-rc2-linux-x86_64.tar.gz

然后切换到解压后的目录下,用pwd查看当前路径:

1
2
cd cmake-3.27.0-rc2-linux-x86_64
pwd

复制一下当前的路径,然后修改环境变量,将各个获得的路径添加到环境变量中:

1
vim ~/.bashrc

在.bashrc文件中添加:

1
export "export PATH="/data/home/df103503/df103503/soft/cmake-3.27.0-rc2-linux-x86_64/bin:$PATH""

其中/data/home/df103503/df103503/soft/cmake-3.27.0-rc2-linux-x86_64/bin这个路径就是pwd返回的路径,这样修改环境变量就修改好了,然后source一下即可:

1
source ~/.bashrc

这样就配置好了,输入以下代码可以看看,如果返回的是3.27的版本,跟你下载的版本一致,那就配置好了:

1
cmake -version

以下是我返回的值:

安装FFTW库

FFTW库在sobereva的帖子里面直接贴出来了,可以直接下载,不过这个也有官网的存在,可以去官网下载,但是sobereva的帖子中所说的是Gromacs2018要求的是FFTW 3.3.8,而官网上的版本为3.3.10:

FFTW Home Page

我这里为了避免出错还是用的3.3.8,将这个压缩包上传到服务器,然后解压,解压之后进入到目录下,输入:

1
./configure --prefix=~/soft/fftw338 --enable-sse2 --enable-avx --enable-float --enable-shared

其中~/soft/fftw338就是安装路径,我在最后将–enable-avx2加上了,我觉得这个服务器应该是支持AVX2指令集的。

这个执行:

1
make -j install

这个编译完成后就会多出来一个fftw338文件。

安装Gromacs

前面的准备步骤做完了就可以开始编译安装Gromacs了,将Gromacs的压缩包解压,然后进入到目录下,创建一个build的目录,依次的指令为:

1
2
3
4
5
6
7
tar -zvxf gromacs-2018.8.tar.gz
cd gromacs-2018.8
mkdir build
cd build
export CMAKE_PREFIX_PATH=~/soft/fftw338
cmake .. -DCMAKE_INSTALL_PREFIX=~/soft/gmx2018.8

这样提前用cmake配置好之后,就可以用make进行编译了,继续执行指令:

1
make install -j

这个时候等一会就行了,很快就能编译完成。

关于指令集的修改

在按照上面的配置编译之后,后续在运行的过程中很可能服务器会提醒一个关于指令集的Note,这个可能会导致计算速度非常的慢,比如我这里在安装好之后,计算的过程中就有提醒:

这就是指令集的问题,同时也会有这个提醒:

所以在cmake操作那一步还是需要有一定的调整,将原来的cmake指令改为如下的指令:

1
cmake .. -DCMAKE_INSTALL_PREFIX=~/soft/gmx2018.8 -DGMX_SIMD=AVX2_256 -DGMX_USE_RDTSCP=ON

在后面添加了-DGMX_SIMD=AVX2_256 和-DGMX_USE_RDTSCP=ON,关于-DGMX_USE_RDTSCP=ON由于是Gromacs软件建议添加的,具体添加了会引发什么效果也不清楚,但是这样添加之后对编译并没有什么影响。能够正常完成编译。

配置环境变量

接下来就是配置环境变量了,这个时候要注意,很可能你之前用过其它版本的Gromacs,已经加载过一些环境变量了,而这个时候加载的可能是临时的,所以会让你在这次登录的时候能够正常使用,而到下一次登录服务器的时候就提醒你缺少一些共享库了,所以还是要好好配置一下环境变量。

Gromacs需要的主要有两个环境,一个是gcc,一个是inteloneapi(这里我是参考的之前的版本配置好的文件内容),这个可以看看之前能正常运行的版本,一半运行之前会source一个文件,可以打开这个source的文件看看,比如我这里打开source的gmxbarc文件,出现了以下内容:

1
2
3
4
source /data/profile/gcc9.env
source /data/profile/inteloneapi.env
source /data/software/gromacs-2021.2/bin/GMXRC

最后一个就是我们配置gmx的环境变量,而前面两个则是配置gromacs运行所需的其它环境,因此理论上来说,我们需要将这两个环境变量也添加到我们自己的登录用户上,或者直接点,我们可以在自己的Gromacs文件中也写一个这样的gmxbarc文件,但是呢修改以下最后gromacs的路径。

首先,我们切换到刚刚我们编译好的Gromacs的目录下,进入到bin目录,然后pwd一下,复制返回的链接,然后直接在当前目录vim gmxbarc,创建一个gmxbarc文件,然后将上面的内容复制进去,最后的路径则改为刚刚复制的路径。操作如下:

1
2
3
cd ~/soft/gmx2018.8/bin
pwd
vim gmxbarc

新的gmxbarc文件内容如下:

1
2
3
source /data/profile/gcc9.env
source /data/profile/inteloneapi.env
source /data/home/df103503/df103503/soft/gmx2018.8/bin/GMXRC

这个时候gmxbarc的这个文件所在的路径就是我们刚刚pwd返回的路径,所以我们可以继续复制这个路径,然后将这个gmxbarc文件添加到环境变量中:

1
vim ~/.bashrc

在.bashrc的最后添加:

1
source /data/home/df103503/df103503/soft/gmx2018.8/bin/gmxbarc

最后source一下这个dot文件:

1
source ~/.bashrc

这个时候环境变量就配置好了,gmx就可以正常使用了。


Gromacs2018的安装
http://phoenixjason.cn/2023/06/16/20230616Gromacs2018的安装/
作者
Jason
发布于
2023年6月16日
许可协议