• 回答数

    2

  • 浏览数

    1774

  • 收藏数

    0

作者:梦醉红颜 发表于 2018-11-26 11:25:10
跳转到指定楼层
Gromacs最近发布了4.6的beta版本,想尝尝鲜,于是就开始在集群上进行折腾。由于集群是曙光所装的很老的redhat4.6,很多新的软件安装起来都非常麻烦,装一个最新的gcc都弄了我一天时间,坑爹啊。另外,Gromacs从4.6开始不再支持传统的 configureautoconf/make编译安装,只能通过CMake安装,一开始有些不习惯,但是上手以后,发现非常方便。下面简单记录安装过程。需要说明的是,由于各个机器上的系统都不完全相同,安装过程可能略有不同,所以这里的记录的过程不是通用的,仅供参考。

1. 安装CMake
下载最新版本的CMake,下载网址:http://www.cmake.org/cmake/resources/software.html
按照传统的四步步骤安装即可,即 解压->./configure ->make-> make install
2. 安装fftw
./configure --prefix=/opt/fftw-3.3.3-sse2 --enable-shared--enable-sse2
make -j 8 (多核编译)
make install
3.安装openmpi
下载地址:http://www.open-mpi.org/
安装过程与安装CMake和fftw相同
说明:在我的机子上也安装有mpich2-1.5,但是我发现在安装gromacs的并行版本的时候,如果用mpich2的话会出错,而用最新版本的openmpi-1.6.3则没有问题,顺利安装。最新版本的mpich-3.0.1没有试过,因为我的机子无法安装mpich-3.0.1,原因不明。
4. 安装Gromacs
(1)下载并解压,然后在解压后的gromacs-4.6-beta3文件夹建立一个目录build用来编译源代码。
cd build (接下来的操作都是在build目录完成)
(2)安装串行版本的Gromacs
CMAKE_PREFIX_PATH=/opt/fftw-3.3.3-sse2 CC=icc FC=ifort F77=ifortCXX=icpc LDFLAGS="-limf -lm" cmake..-DCMAKE_INSTALL_PREFIX=/opt/gromacs-4.6-b3
这里,第一个参数指定了fftw的位置,然后我用的是intel的编译器,机器上虽然装了最新本版的gcc-4.7.2,但是编译的时候出错,不知为什么,换用intel的编译器,顺利编译,后面这个LDFLAGS="-limf-lm"是用intel编译器时必须的,不然编译的时候也会出现警告和错误。最后一个参数是指定gromacs的安装位置,需要说明的是,gromacs网站上好像有点错误,他最后一个参数给的是:-DGMX_INSTALL_PREFIX=/opt/gromacs-4.6-b3,按照这个选项装的话,gromacs不能被装到指定位置,而是装到了/usr/local/gromacs下。
make -j 8
make install
(3)安装并行版本的Gromacs
rm -rf * (先把前一步编译的文件删除)
CMAKE_PREFIX_PATH=/opt/fftw-3.3.3-sse2:/opt/openmpi-1.6.3 CC=iccFC=ifort F77=ifort CXX=icpc LDFLAGS="-limf -lm" cmake ..-DGMX_MPI=ON -DCMAKE_INSTALL_PREFIX=/opt/gromacs-4.6-b3
make mdrun -j 8
make install-mdrun
这里只要编译mdrun即可,因为其它程序的并行版本没什么用。
(4)安装双精度并行版本的Gromacs
在某些时候(比如能量最小化的时候),可能会用到双精度版本的gromacs。因为我是在集群上使用gromacs,并行用的多,只装一个并行的双精度版本,串行的双精度版本就不装了。
rm -rf *
CMAKE_PREFIX_PATH=/opt/fftw-3.3.3-sse2:/opt/openmpi-1.6.3 CC=iccFC=ifort F77=ifort CXX=icpc LDFLAGS="-limf -lm" cmake ..-DGMX_MPI=ON -DGMX_DOUBLE=ON -DGMX_DEFAULT_SUFFIX=OFF-DGMX_BINARY_SUFFIX="_mpid" -DCMAKE_INSTALL_PREFIX=/opt/gromacs-4.6-b3
双精度是通过 -DGMX_DOUBLE=ON选项来控制。然后选项“-DGMX_DEFAULT_SUFFIX=OFF-DGMX_BINARY_SUFFIX="_mpid"指定了双精度并行版本的mdrun程序的下标,即双精度的并行版本的mdrun程序对应的文件为mdrun_mpid.
完成!!!
抛砖引玉,欢迎交流!
我的博客:http://blog.sina.com.cn/tomqliang,欢迎访问。
分享:
回复

使用道具

该用户从未签到

新手上路

Rank: 1

积分
30
极客币
52
主题
8
帖子
24
注册时间
2018-10-31
在线时间
1 小时
性别
保密
发表于 2018-11-26 11:25:28 | 显示全部楼层
使用LDFLAGS="-limf -lm"之后,编译的时候会出现如下提示
Linking C executable eneconv
icc: warning #10315: specifying -lm before files may supercede the Intel(R) math library and affect performance
LDFLAGS="-limf -lm"这东东是提高性能还是影响性能,求解答
回复

使用道具 举报

该用户从未签到

新手上路

Rank: 1

积分
30
极客币
52
主题
9
帖子
23
注册时间
2018-10-31
在线时间
2 小时
性别
保密
 楼主| 发表于 2018-11-26 11:25:35 | 显示全部楼层
回复

使用道具 举报

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录