Gromacs
概要
- フローニンゲン大学で開発された分子動力学シミュレーションのソフトウェアパッケージ
- 生体分子の分子動力学シミュレーションパッケージといえば、AMBER と Gromacs ってぐらい有名なパッケージ
- 使い方は、こちら
インストール
簡単な方法
$ sudo apt-get install gromacs gromacs-data gromacs-mpich gromacs-openmpi
- ただし、バージョンが Ubuntu のリポジトリで固定されてしまうため、最新版を扱いたい場合は、以下を参照。
手動インストール
- 環境: Ubuntu 16.04 (64 bit)
Openmpi のインストール
- 公式サイトからパッケージを入手する。
- ここでは、
openmpi-4.0.0.tar.gz
を例にする。
- 展開する。
$ tar axvf openmpi-4.0.0.tar.gz $ cd openmpi-4.0.0
- 設定する。
- CPU 用
$ ./configure --prefix=/usr/local --enable-static --with-slurm CC=gcc CXX=g++ F77=gfortran FC=gfortran
- GPU 用
$ ./configure --prefix=/usr/local --enable-static --with-slurm CC=gcc CXX=g++ F77=gfortran FC=gfortran --with-cuda
- コンパイルする。
$ make -j 4
- インストールする。
$ sudo make install
fftw のインストール
- 公式サイトからパッケージをダウンロードする。
- ここでは、
fftw-3.3.8.tar.gz
を例にする。
- 展開する。
$ tar axvf fftw-3.3.8.tar.gz $ cd fftw-3.3.8
- 設定をする。
$ ./configure --prefix=/usr/local/fftw CC=gcc CXX=g++ F77=gfortran FC=gfortran --enable-threads --enable-sse2 --enable-openmp --enable-static --enable-shared --with-g77-wrappers MPICC=/usr/local/bin/mpicc LD_FLAGS=l/usr/local/lib CPP_FLAGS=-I/usr/local/include
- 上記に加え、条件に合わせて以下のオプションを追加する (よって、展開後にディレクトリをコピーするなどして、コンパイルするディレクトリをそれぞれ作成すると良い)。
- single 版の場合、
--enable-single
- double 版の場合、なし
- single + MPI 版の場合、
--enable-single --enable-mpi
- double + MPI 版の場合、
--enable-mpi
- GPU 版の Gromacs は、fftw の single を使う。
- 今回は、インストール先を
--prefix=/usr/local/fftw_single
とした。
- コンパイルする。
$ make -j 4
- インストールする。
$ sudo make install
Gromacs 本体のインストール
- 必要パッケージをインストールする。
$ sudo apt install cmake
- 公式サイトからパッケージをダウンロードする。
- ここでは
gromacs-5.1.2.tar.gz
を例にする。
- 展開する。
$ tar axvf gromacs-5.1.2.tar.gz $ cd gromacs-5.1.2
- 作業ディレクトリを作成する。
$ mkdir single $ cd single
- 作業ディレクトリ名は任意。
- 設定をする。
$ export LD_FLAGS="-L/usr/local/fftw_single/lib" $ export CPP_FLAGS="-I/usr/local/fftw_single/include" $ export LD_LIBRARY_PATH=/usr/local/fftw_single/lib:$LD_LIBRARY_PATH $ sudo ldconfig $ cmake ../ \ -DCMAKE_C_COMPILER=/usr/local/bin/mpicc \ -DCMAKE_CXX_COMPILER=/usr/local/bin/mpicxx \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DGMX_FFT_LIBRARY=FFTW3 \ -DCMAKE_PREFIX_PATH=/usr/local/fftw_single \ -DGMX_SIMD=AVX_256 \ -DBUILD_SHARED_LIBS=OFF \ -DGMX_PREFER_STATIC_LIBS=ON \ -DGMX_DEFAULT_SUFFIX=OFF \ -DGMX_BINARY_SUFFIX="" \ -DGMX_LIBS_SUFFIX="" \ -DGMX_MPI=OFF \ -DGMX_DOUBLE=OFF
- 上記オプションは、条件によって変わるので適宜変更する (環境変数
LD_FLAGS
、CPP_FLAGS
、LD_LIBRARY_PATH
の FFTW の参照先は末尾の括弧にて表示)。- single 版:
-DGMX_MPI=OFF -DGMX_DOUBLE=OFF -DGMX_GPU=OFF
(single) - double 版:
-DGMX_MPI=OFF -DGMX_DOUBLE=ON -DGMX_GPU=OFF
(double) - single + MPI 版:
-DGMX_MPI=ON -DGMX_DOUBLE=OFF -DGMX_GPU=OFF
(single + mpi) - double + MPI 版:
-DGMX_MPI=ON -DGMX_DOUBLE=ON -DGMX_GPU=OFF
(double + mpi) - GPU 版:
-DGMX_MPI=OFF -DGMX_DOUBLE=OFF -DGMX_GPU=ON
(single)
- それぞれの実行ファイル名の末尾は
-DGMX_BINARY_SUFFIX
、-DGMX_LIBS_SUFFIX
で指定する。- 例: double 版:
-DGMX_BINARY_SUFFIX="_d"
、-DGMX_LIBS_SUFFIX="_d"
→ gmx_d - 例: double + MPI 版:
-DGMX_BINARY_SUFFIX="_d_mpi"
、-DGMX_LIBS_SUFFIX="_d_mpi"
→ gmx_d_mpi
- コンパイルする。
$ make -j 4
- インストールする。
$ sudo make install
トラブルシューティング
- Gromacs コンパイル時に、
nvcc fatal : Unsupported gpu architecture 'compute_20
' が出てコンパイルできない。- 問題: コンパイル時に指定している CUDA のバージョンでは
compute_20
というアーキテクチャをサポートしなくなったため。 - 解決策 1: CUDA のバージョンを変える (8.0 RC だと、ワーニング程度で済む) 。
- 解決策 2: 下記参考サイトのように
gromacs-5.1.2/cmake/gmxManageNvccConfig.cmake
の if 文を書き換える。