计算化学公社

标题: GROMOS 11 离线源码编译 [打印本页]

作者
Author:
mizu-bai    时间: 2024-4-6 20:35
标题: GROMOS 11 离线源码编译
本帖最后由 mizu-bai 于 2024-4-6 23:32 编辑

GROMOS 11 离线源码编译
author: mizu-bai
date: 2024.04.06
1. 简介

GROMOS 是一个经典力场的分子动力学程序,这个名字一看就和 GROMACS 有某些渊源。直接引用社长的介绍吧,详细见帖子《GROMOS程序免费了》。
GROMACS是90年代初从GROMOS派生出来的,俩程序开发理念不同。GROMACS对速度极为重视,而GROMOS程序的开发者就是GROMOS力场的开发者,看重力场开发。GROMACS里还能看到GROMOS的影子,比如.gro格式就是GROMOS来的。如今GROMACS和GROMOS已经完全脱离关系了,甚至GROMACS有的开发者还想把GROMOS力场都从GROMACS中去掉。

2. 编译安装

GROMOS 包括两个包,md++ 和 gromos++,分别为分子动力学引擎与前后处理工具,此外又依赖 gsl 数学库与 fftw 快速傅立叶变换库。如果要编译 MPI 并行版本的 md++,则还需要 MPI 编译器与 MPI 版的 fftw。

笔者的编译配置如下:源码包与编译目录在 `~/gromos-11-build/` 下,其中有 `gsl-2.6.tar.gz`,`fftw-3.3.8.tar.gz`,`gromosXX-release_1_6_1.tar.gz`,`gromosPlsPls-release_1_6_0.tar.gz`这四个源码包,目标安装位置为 `/opt/gromos-11/`。

  1. ~/gromos-11-build$ tree
  2. .
  3. ├── fftw-3.3.8.tar.gz
  4. ├── gromosPlsPls-release_1_6_0.tar.gz
  5. ├── gromosXX-release_1_6_1.tar.gz
  6. └── gsl-2.6.tar.gz

  7. 0 directories, 4 files
复制代码

笔者所用编译器为 GNU 9.4.0,MPI 为 OpenMPI 4.0.3,均为系统默认版本。如果需要自行编译 OpenMPI,务必启用 `--enable-mpi-cxx` 与 `--enable-mpi-fortran` 选项。

(1) gsl 2.6

解压源码包,进入源码目录后,配置编译选项,安装目录为 `/opt/gromos-11/gsl-2.6`。

  1. ~/gromos-11-build$ tar zxvf gsl-2.6.tar.gz
复制代码

配置完成后,编译安装,这里笔者用了 8 核。

  1. ~/gromos-11-build/gsl-2.6$ make -j 8
  2. ~/gromos-11-build/gsl-2.6$ make install
复制代码

编译完记得回到 `~/gromos-11-build/` 目录下。

(2) fftw 3.3.8

同上,解压源码包。进入源码目录,配置编译选项,安装目录为 `/opt/gromos-11/fftw-3.3.8`。记得把 `CC`,`CXX` 和 `FC` 这三个环境变量替换为自己的 MPI 编译器路径。

  1. ~/gromos-11-build$ tar zxvf fftw-3.3.8.tar.gz
  2. ~/gromos-11-build$ cd fftw-3.3.8
  3. ~/gromos-11-build/fftw-3.3.8$ CC=mpicc CXX=mpicxx FC=mpifort ./configure --prefix=/opt/gromos-11/fftw-3.3.8 --enable-mpi --enable-fortran --disable-shared
复制代码

配置完成后,编译安装,这里笔者用了 8 核。

  1. ~/gromos-11-build/fftw-3.3.8$ make -j 8
  2. ~/gromos-11-build/fftw-3.3.8$ make install
复制代码

可以检查一下安装目录下是否出现了 MPI 版的 fftw。

  1. ~/gromos-11-build/fftw-3.3.8$ls /opt/gromos-11/fftw-3.3.8/lib
  2. cmake  libfftw3.a  libfftw3.la  libfftw3_mpi.a  libfftw3_mpi.la  pkgconfig
复制代码

编译完记得回到 `~/gromos-11-build/` 目录下。

(3) md++ 1.6.1

解压源码包,进入目录,配置编译选项,安装目录为 `/opt/gromos-11/md++-1.6.1`。先运行 `Config.sh` 以生成 `configure`,再运行 `configure`,记得把这里的 `gsl` 与 `fftw` 的目录写对。

  1. ~/gromos-11-build$ tar zxvf gromosPlsPls-release_1_6_0.tar.gz
  2. ~/gromos-11-build$ cd gromosXX-release_1_6_1/md++
  3. ~/gromos-11-build/gromosXX-release_1_6_1/md++$ ./Config.sh
复制代码

由于 `md++` 不能同时启用 OpenMP 与 MPI 并行,因此两种并行版需要分别编译。

OpenMP 并行版需要在 `configure` 时添加 `--enable-openmp` 选项,没有报错的话可以继续编译,编译得到的可执行文件为 `md++`。

  1. ~/gromos-11-build/gromosXX-release_1_6_1/md++$ ./configure --prefix=/opt/gromos-11/md++-1.6.1 --with-gsl=/opt/gromos-11/gsl-2.6 --with-fftw=/opt/gromos-11/fftw-3.3.8 --disable-shared --enable-openmp
  2. ~/gromos-11-build/gromosXX-release_1_6_1/md++$ make -j 8
  3. ~/gromos-11-build/gromosXX-release_1_6_1/md++$ make install
复制代码

由于在 GROMOS 教程中看到输入文件里用到了 doc 目录,保险起见 doc 也编译一下。编译 doc 需要安装 `doxygen` 包。

  1. ~/gromos-11-build/gromosXX-release_1_6_1/md++$ touch doc/doxygen.conf.in
  2. ~/gromos-11-build/gromosXX-release_1_6_1/md++$ make doc
  3. ~/gromos-11-build/gromosXX-release_1_6_1/md++$ cp -r doc /opt/gromos-11/md++-1.6.1
复制代码

MPI 并行版需要在 `configure` 时添加 `--enable-mpi` 选项,并确保编译 fftw 时也启用了 MPI 支持。同时应指定与编译 fftw 时相同的 MPI 编译器。可以在编译完 OpenMP 并行版后删除编译目录,重新解压一次 `gromosPlsPls-release_1_6_0.tar.gz` 再编译。编译得到的可执行文件为 `md_mpi`,不会与 OpenMP 版本冲突。

  1. ~/gromos-11-build/gromosXX-release_1_6_1/md++$ CC=mpicc CXX=mpicxx FC=mpifort ./configure --prefix=/opt/gromos-11/md++-1.6.1 --with-gsl=/opt/gromos-11/gsl-2.6 --with-fftw=/opt/gromos-11/fftw-3.3.8 --disable-shared --enable-mpi
  2. ~/gromos-11-build/gromosXX-release_1_6_1/md++$ make -j 8
  3. ~/gromos-11-build/gromosXX-release_1_6_1/md++$ make install
复制代码

检查一下安装目录,两种并行版本都在就 ok。

  1. ~/gromos-11-build/gromosXX-release_1_6_1/md++$ ls /opt/gromos-11/md++-1.6.1/bin
  2. eds_2box  eds_2box_mpi  md  md_mpi  repex_mpi  rng_gsl  tabulate_spc
复制代码

编译完记得回到 `~/gromos-11-build/` 目录下。

(4) gromos++ 1.6.0

解压源码包,进入源码目录,配置编译选项,安装目录为 `/opt/gromos-11/gromos++-1.6.0`。

  1. ~/gromos-11-build$ cd gromosPlsPls-release_1_6_0/gromos++
  2. ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ ./Config.sh
  3. ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ ./configure --prefix=/opt/gromos-11/gromos++-1.6.0 --with-gsl=/opt/gromos-11/gsl-2.6 --with-fftw=/opt/gromos-11/fftw-3.3.8 --disable-shared --enable-openmp
  4. ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ make -j 8
  5. ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ make install
复制代码

编译 doc

  1. ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ touch doc/doxygen.conf.in
  2. ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ make doc
  3. ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ cp -r doc /opt/gromos-11/gromos++-1.6.0
复制代码

最后配置环境变量,把以下内容写入到 shell profile 中,重新 source 一下 shell profile 或退中终端重新登录即可。

  1. export PATH=/opt/gromos-11/md++-1.6.1/bin:$PATH
  2. export PATH=/opt/gromos-11/gromos++-1.6.0/bin:$PATH
复制代码

3. 教程

安装完成后,就可以试试 GROMOS 的官方教程了。

附录

最后放一下源码包

(, 下载次数 Times of downloads: 7)
(, 下载次数 Times of downloads: 6)
(, 下载次数 Times of downloads: 7)
(, 下载次数 Times of downloads: 6)





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