====== Gromacs ======
===== 概要 =====
* フローニンゲン大学で開発された分子動力学シミュレーションのソフトウェアパッケージ
* 生体分子の分子動力学シミュレーションパッケージといえば、AMBER と Gromacs ってぐらい有名なパッケージ
* 使い方は、[[分子シミュレーション関連/gromacs|こちら]]
===== インストール =====
==== 簡単な方法 ====
$ sudo apt-get install gromacs gromacs-data gromacs-mpich gromacs-openmpi
* ただし、バージョンが Ubuntu のリポジトリで固定されてしまうため、最新版を扱いたい場合は、以下を参照。
==== 手動インストール ====
* 環境: Ubuntu 16.04 (64 bit)
=== Openmpi のインストール ===
- [[https://www.open-mpi.org/ | 公式サイト]]からパッケージを入手する。
* ここでは、''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 のインストール ===
- [[http://www.fftw.org | 公式サイト]]からパッケージをダウンロードする。
* ここでは、''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
- [[http://manual.gromacs.org/documentation/|公式サイト]]からパッケージをダウンロードする。
* ここでは ''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 文を書き換える。
* 参考サイト: [[https://stackoverflow.com/questions/47129220/nvcc-fatal-unsupported-gpu-architecture-compute-20-while-cuda9-0-is-installe | c++ - nvcc fatal : Unsupported gpu architecture 'compute_20' while cuda9.0 is installed - Stack Overflow]]
===== 参考サイト =====
* [[https://www.imsbio.co.jp/md/2158/ | GROMACS 5.1.2 のインストール方法 | 株式会社 情報数理バイオ]]
{{tag>Linux サーバ 分シミュレーション}}