====== 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 サーバ 分シミュレーション}}