案例教程:GROMACS-5.1.4的安装

2018年1月18日

Linux系统中软件的安装一直是一件很繁琐的事情。尽管在各LINUX系统的发行版中都发展出了简便的包管理程序,但还有不少软件需要自行编译安装,以满足最优的个性化软件配置方案。在计算机辅助药物设计中,很多软件都是这样的,GROMACS就是其中之一。GROMACS软件作为药物设计中三大分子动力学模拟软件之一,具有速度快、设置简单、开源免费等优点,有不小的受众面。本次教程将演示GROMACS的安装过程,介绍LINUX系统中软件安装的一般步骤。

 

操作系统:CentOS 6.8 x64

软件包:gromacs-5.1.4.tar.gz;fftw-3.3.6-pl2.tar.gz;openmpi-2.1.0.tar.gz

 

为了能详细的讲解LINUX软件安装,我将以第一次接触GROMACS软件的使用者的角度安装软件,并且我使用的CentOS系统也是完全按照前两个CentOS系统安装教程,刚刚安装完成的系统,并未做任何升级操作。因此,教程中有些步骤难免显得啰嗦,如果您知晓其中某些内容,可以选择跳过。但强烈推荐不熟悉LINUX系统的使用者详细阅读本教程。限于自身水平,对于其中存在的错误,恳请指正。

 

具体安装步骤如下:

1. 阅读官网软件安装介绍

百度搜索“GROMACS”,打开官网,并进入安装指南,本次教程中使用的软件包版本为5.1.4,因此参看Installation Instructions 5.0的说明。在LINUX系统中,手动编译安装软件时,需要特别留意安装指南中有关使用到的编译器,以及支持库的信息。从页面Installation Instructions 5.0中获取到的主要信息如下:

编译器

最新的C和C++编译器

CMake编译器,并且版本号 ≥ 2.8.8

并行

GROMACS可以通过内置的MPI线程实现在单机上并行,不需要用户设置。

GPU支持

本例使用的电脑中并没有可用GPU加速显卡,故跳过。

MPI支持

MPI支持用于多台电脑间的并行,虽然本次是在单机上的演示,但出于演示目的,仍然安装MPI支持。本案例中使用OpenMPI 2.1.0。

FFT支持

软件需要用到快速傅里叶转换(Fast Fourier Transform),因此需要FFTW或者Intel MKL库支持。您系统中可能已经预装了FFTW库,但安装指南中推荐重新编译安装FFTW。本教程中使用FFTW 3.3.6。

SIMD支持

编译过程中会自动识别,如若出错,会给出报错信息。大多数CPU芯片类型的系统都推荐使用4.7及以上版本C和C++编译器

以上为主要的安装信息,更多信息可参考官网。以上提到的相关安装包,可百度获取。

 

2. 安装软件

LINUX系统中,软件安装的一般步骤为:

解压包 > 编译 > 安装 > 测试 > 设置环境变量

解压包:即获取安装包并解压

编译:检测电脑设置,根据电脑环境设置软件配置,若电脑中相关的依赖软件或库不足,则会给出报错

安装:根据编译文件安装软件,包括make和make install,有的只包含其中一步。

测试:检测软件的安装是否完整,是否存在影响软件使用的问题。

设置环境变量:设定软件的可执行程序的搜索路径,支持库路径等信息。

 

安装指南中快速安装的步骤如下:

tar xfz gromacs-5.0.7.tar.gz      #解压

cd gromacs-5.0.7            #进入安装包目录

mkdir build               #创建build文件夹

cd build                 #进入build文件夹

cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON      #编译

make                   #make

make check                #make check

sudo make install            #make install

source /usr/local/gromacs/bin/GMXRC   #定义环境变量

本教程中需要安装FFTW库和OpenMPI,因此快速指引中cmake步骤的编译选项可能不适合本次教程。Typical GROMACS installation中为我们提供了两个选项:

-DGMX_MPI=on -DGMX_FFT_LIBRARY=fftw

快速安装中虽然不能给我们想要的编译选项,Typical GROMACS installation中列出的编译选项也并不完整。但至少这些为我们展示了GROMACS的一般安装流程及主要的编译选项。LINUX系统的软件安装中,软件包内的README或INSTALL文件中可能具有更加详细的信息。

 

首先先安装FFTW和OpenMPI。

A. 安装FFTW

详细信息查看FFTW官网,这里直接给出安装命令,如下:

tar xvf fftw-3.3.6.tar.gz      #解压

cd fftw-3.3.6-pl2          #进入安装包目录

./configure --prefix=/opt/fftw-3.3.6 --enable-float --enable-shared   #编译

make                #make

make install             #make install

vim /etc/profile           #定义环境变量

按i键,在文本末输入以下内容:(下文省去此说明)

export LD_LIBRARY_PATH=/opt/fftw-3.3.6/lib:$LD_LIBRARY_PATH

按ESC键,输入:x <Enter>,保存退出。(下文省去此说明)

source /etc/profile         #读取/etc/profile设置,使修改生效。

编译步骤中,--prefix项指定安装路径,--enable-shared项见FFTW官网说明。编译过程出现报错:

没有可用的C编译器,故连接网络并使用yum安装gcc。

yum install -y gcc

重新编译,没有报错,通过。

后续步骤,没有出现报错,完成安装FFTW 3.3.6。

 

B. 安装OpenMPI

详细信息查看OpenMPI官网,这里直接给出安装命令,如下:

tar xvf openmpi-2.1.0.tar.gz           #解压

cd openmpi-2.1.0                 #进入安装包目录

./configure --prefix=/opt/openmpi-2.1.0     #编译

make                       #make

make install                   #make install

vim /etc/profile                 #定义环境变量

export PATH=/opt/openmpi-2.1.0/bin:$PATH

export LD_LIBRARY_PATH=/opt/openmpi-2.1.0/lib:$LD_LIBRARY_PATH

source /etc/profile                #读取/etc/profile设置,使修改生效。

编译出现报错:

系统缺少C++编译器,安装gcc-c++。

yum install -y gcc-c++

重新编译,后续步骤未出现报错,安装完成。

 

C. GROMACS安装

检查编译器

gcc --version          4.4.7

c++ --version          4.4.7

cmake              无输出(无cmake编译器)

安装cmake编译器

yum install -y cmake

cmake              2.8.12.2

 

tar xfz gromacs-5.1.4.tar.gz    #解压gromacs安装包

cd gromacs-5.1.4          #进入安装包目录

解压得到安装文件,查看安装说明文件(README、INSTALL)。说明文件中的内容与官网上的内容一致,无更多内容!现在在当前文件夹下新时用于放置编译文件的文件夹build,并进入编译:

mkdir build             #新建build文件夹

cd build              #进入build文件夹

cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gromacs-5.1.4 -DGMX_FFT_LIBRARY=fftw -DGMX_MPI=on   #编译

其中,-DCMAKE_INSTALL_PREFIX指定软件安装位置,-DGMX_FFT_LIBRARY指定FFT支持,-DGMX_MPI=on指定MPI支持。出现如下报错:

将fftw改成fftw3,清空build文件夹下内容,重新编译。出现报错:

“Compiler flag was valid, but executable did not build - perhaps update the binutils package.”查阅终端记录,发现是由于C和C++编译器的SIMD检查失败。检查官网安装指南的SIMD说明,“SIMD需要新的C和C++编译器支持,最好是4.7以上版本”。

下面更新C和C++编译器

CentOS 6.8系统的官方yum源中的C和C++编译器最新版本就是4.4.7,严重滞后与现在的最新版本。这里添加第三方网易yum源并更新C和C++编译器。

wget http://people.centos.org/tru/devtools-2/devtools-2.repo   #下载人民网的yum配置文件

mv devtools-2.repo /etc/yum.repos.d                 #用新下载的yum文件替换旧文件

yum -y install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++   #安装更新补丁

三个安装包会被装在 /opt/rh/devtoolset-2/root/ 中,现备份旧版gcc编译器至gcc-4.4.7,并将新版本gcc超链接至程序调用目录。

mv /usr/bin/gcc /usr/bin/gcc-4.4.7

mv /usr/bin/g++ /usr/bin/g++-4.4.7

mv /usr/bin/c++ /usr/bin/c++-4.4.7

ln -s /opt/rh/devtoolset-2/root/usr/bin/gcc /usr/bin/gcc

ln -s /opt/rh/devtoolset-2/root/usr/bin/g++ /usr/bin/g++

ln -s /opt/rh/devtoolset-2/root/usr/bin/c++ /usr/bin/c++

gcc --version           #检查gcc的版本号

更新过程中,如果因速度过慢而报错,可以多试几次。升级成功后,如下:

清空build文件夹,重试编译。出现报错:

提示需要指定库文件libfftw3f.so的位置。但是后面也给出了提示,可以使用-DGMX_BUILD_OWN_FFTW=ON选项,让GROMACS自动安装FFTW。清空build文件夹中的内容,重新编译:

cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gromacs-5.1.4 -DGMX_BUILD_OWN_FFTW=ON -DGMX_MPI=on

哈哈!!编译通过。虽说现在觉得前面手动安装FFTW是多余的,但是总算编译成功了~

当然,也可以按照提示,手动指定相关文件的位置。

 

make

没有出现报错,顺利通过!

 

make check

出现如下报错:

百度“gromacs make check”找到如下说明

-DREGRESSIONTEST_DOWNLOAD=ON  Set to test your GROMACS build. To run the tests set your build to run make check. The libxml2 package is required.

即,如果需要使用make check检查,则,在编译时需要加上选项“-DREGRESSIONTEST_DOWNLOAD=ON”。一般,都可以直接跳过检查步骤。此处跳过。

 

make install

顺利通过!!!

 

source

因为本教程中指定gromacs的安装路径为/opt/gromacs-5.1.4,所以此处的命令为:

source /opt/gromacs-5.1.4/bin/GMXRC

至此,安装完成!使用which gmx_mpi查看gmx_mpi软件的位置(如果没有安装MPI,则此处的gmx_mpi应为gmx)。

软件安装完成!!!

 

需要说明的是,这里使用source引用GROMACS中的脚本设定环境变量,但是当您更换终端窗口或重启后,则仍需要重新source定义GROMACS的变量。因此,推荐将GROMACS的环境变量添加到系统的配置文件中,如下:

vim /etc/profile

source /opt/gromacs-5.1.4/bin/GMXRC

source /etc/profile

 

总结一下本例中gromacs的安装流程

1. 安装openmpi

tar xvf openmpi-2.1.0.tar.gz

cd openmpi-2.1.0

./configure --prefix=/opt/openmpi-2.1.0

make

make install

vim /etc/profile

export PATH=/opt/openmpi-2.1.0/bin:$PATH

export LD_LIBRARY_PATH=/opt/openmpi-2.1.0/lib:$LD_LIBRARY_PATH

source /etc/profile

2. 安装GROMACS

tar xfz gromacs-5.0.7.tar.gz

cd gromacs-5.0.7

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gromacs-5.1.4 -DGMX_MPI=on      -DGMX_BUILD_OWN_FFTW=ON (-DREGRESSIONTEST_DOWNLOAD=ON )

make -j

(make check)

make install

vim /etc/profile

source /opt/gromacs-5.1.4/bin/GMXRC

source /etc/profile

make步骤中的-j选项,为调用所有线程(或使用N指定线程数量),可加快速度,GROMACS官网安装指南有说明。若想进行make check步骤,则cmake编译步骤中,需要加入选项-DREGRESSIONTEST_DOWNLOAD=ON。

与教程开头部分不一致的是,本次GROMACS安装中并未使用前面安装的fftw-3.3.6,而是使用GROMACS的自动安装的fftw。本例中,因为官网和软件包中给出的cmake编译选项的说明并不完整,有很多选项并未给出详细的说明。因此在教程中最开始的cmake编译中只根据需要指定了安装路径(-DCMAKE_INSTALL_PREFIX),FFT支持(-DGMX_FFT_LIBRARY)和MPI支持(-DGMX_MPI)三个选项。后续通过终端提示信息,逐渐更正选项。在LINUX的软件安装中,终端提示信息非常重要,应详细查看每一步的终端输出信息。如果出现报错,则需要从第一个报错开始更正。

好运~

版权声明:本文由Seif Joe于2018/01/18原创发表

转载请注明:案例教程:GROMACS-5.1.4的安装 | Seif Joe

分享: