Gromacs

  • フローニンゲン大学で開発された分子動力学シミュレーションのソフトウェアパッケージ
  • 生体分子の分子動力学シミュレーションパッケージといえば、AMBER と Gromacs ってぐらい有名なパッケージ
  • 使い方は、こちら

簡単な方法

$ sudo apt-get install gromacs gromacs-data gromacs-mpich gromacs-openmpi
  • ただし、バージョンが Ubuntu のリポジトリで固定されてしまうため、最新版を扱いたい場合は、以下を参照。

手動インストール

  • 環境: Ubuntu 16.04 (64 bit)

Openmpi のインストール

  1. 公式サイトからパッケージを入手する。
    • ここでは、openmpi-4.0.0.tar.gz を例にする。
  2. 展開する。
    $ tar axvf openmpi-4.0.0.tar.gz
    $ cd openmpi-4.0.0
  3. 設定する。
    • 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
  4. コンパイルする。
    $ make -j 4
  5. インストールする。
    $ sudo make install

fftw のインストール

  1. 公式サイトからパッケージをダウンロードする。
    • ここでは、fftw-3.3.8.tar.gz を例にする。
  2. 展開する。
    $ tar axvf fftw-3.3.8.tar.gz
    $ cd fftw-3.3.8
  3. 設定をする。
    $ ./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 とした。
  4. コンパイルする。
    $ make -j 4
  5. インストールする。
    $ sudo make install

Gromacs 本体のインストール

  1. 必要パッケージをインストールする。
    $ sudo apt install cmake
  2. 公式サイトからパッケージをダウンロードする。
    • ここでは gromacs-5.1.2.tar.gz を例にする。
  3. 展開する。
    $ tar axvf gromacs-5.1.2.tar.gz
    $ cd gromacs-5.1.2
  4. 作業ディレクトリを作成する。
    $ mkdir single
    $ cd single
    • 作業ディレクトリ名は任意。
  5. 設定をする。
    $ 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_FLAGSCPP_FLAGSLD_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
  6. コンパイルする。
    $ make -j 4
  7. インストールする。
    $ sudo make install
  • Gromacs コンパイル時に、nvcc fatal : Unsupported gpu architecture 'compute_20' が出てコンパイルできない。