|
|
本帖最后由 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/`。
- ~/gromos-11-build$ tree
- .
- ├── fftw-3.3.8.tar.gz
- ├── gromosPlsPls-release_1_6_0.tar.gz
- ├── gromosXX-release_1_6_1.tar.gz
- └── gsl-2.6.tar.gz
- 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`。
- ~/gromos-11-build$ tar zxvf gsl-2.6.tar.gz
复制代码
配置完成后,编译安装,这里笔者用了 8 核。
- ~/gromos-11-build/gsl-2.6$ make -j 8
- ~/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 编译器路径。
- ~/gromos-11-build$ tar zxvf fftw-3.3.8.tar.gz
- ~/gromos-11-build$ cd fftw-3.3.8
- ~/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 核。
- ~/gromos-11-build/fftw-3.3.8$ make -j 8
- ~/gromos-11-build/fftw-3.3.8$ make install
复制代码
可以检查一下安装目录下是否出现了 MPI 版的 fftw。
- ~/gromos-11-build/fftw-3.3.8$ls /opt/gromos-11/fftw-3.3.8/lib
- 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` 的目录写对。
- ~/gromos-11-build$ tar zxvf gromosPlsPls-release_1_6_0.tar.gz
- ~/gromos-11-build$ cd gromosXX-release_1_6_1/md++
- ~/gromos-11-build/gromosXX-release_1_6_1/md++$ ./Config.sh
复制代码
由于 `md++` 不能同时启用 OpenMP 与 MPI 并行,因此两种并行版需要分别编译。
OpenMP 并行版需要在 `configure` 时添加 `--enable-openmp` 选项,没有报错的话可以继续编译,编译得到的可执行文件为 `md++`。
- ~/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
- ~/gromos-11-build/gromosXX-release_1_6_1/md++$ make -j 8
- ~/gromos-11-build/gromosXX-release_1_6_1/md++$ make install
复制代码
由于在 GROMOS 教程中看到输入文件里用到了 doc 目录,保险起见 doc 也编译一下。编译 doc 需要安装 `doxygen` 包。
- ~/gromos-11-build/gromosXX-release_1_6_1/md++$ touch doc/doxygen.conf.in
- ~/gromos-11-build/gromosXX-release_1_6_1/md++$ make doc
- ~/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 版本冲突。
- ~/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
- ~/gromos-11-build/gromosXX-release_1_6_1/md++$ make -j 8
- ~/gromos-11-build/gromosXX-release_1_6_1/md++$ make install
复制代码
检查一下安装目录,两种并行版本都在就 ok。
- ~/gromos-11-build/gromosXX-release_1_6_1/md++$ ls /opt/gromos-11/md++-1.6.1/bin
- 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`。
- ~/gromos-11-build$ cd gromosPlsPls-release_1_6_0/gromos++
- ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ ./Config.sh
- ~/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
- ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ make -j 8
- ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ make install
复制代码
编译 doc
- ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ touch doc/doxygen.conf.in
- ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ make doc
- ~/gromos-11-build/gromosPlsPls-release_1_6_0/gromos++$ cp -r doc /opt/gromos-11/gromos++-1.6.0
复制代码
最后配置环境变量,把以下内容写入到 shell profile 中,重新 source 一下 shell profile 或退中终端重新登录即可。
- export PATH=/opt/gromos-11/md++-1.6.1/bin:$PATH
- export PATH=/opt/gromos-11/gromos++-1.6.0/bin:$PATH
复制代码
3. 教程
安装完成后,就可以试试 GROMOS 的官方教程了。
附录
最后放一下源码包
gsl-2.6.tar.gz
(7.06 MB, 下载次数 Times of downloads: 7)
fftw-3.3.8.tar.gz
(3.92 MB, 下载次数 Times of downloads: 6)
gromosXX-release_1_6_1.tar.gz
(3.94 MB, 下载次数 Times of downloads: 7)
gromosPlsPls-release_1_6_0.tar.gz
(2.93 MB, 下载次数 Times of downloads: 6)
|
评分 Rate
-
查看全部评分 View all ratings
|