2018年2月12日 星期一

安裝GROMACS-2018在Ubuntu 16.04

GROMACS 2018於2018年1月10日釋出,新增的功能參考GROMACS 2018。由於安裝的版本有用GPU加速,參考了下面幾篇文章:
以下詳細說明安裝的過程

I. 檢查編譯環境

  1. gcc --version
  2. cmake --version
  3. sudo pip install numpy
  4. sudo pip install scipy
  5. sudo pip install pymbar
CMake版本要確認是3.4.3或是之後的版本
第3,4,5指令是因為physical validation是用python寫的,需要此三個套件


II. 下載原始碼,準備好編譯的資料夾

  1. wget ftp://ftp.gromacs.org/pub/gromacs/gromacs-2018.tar.gz
  2. md5sum gromacs-2018.tar.gz 
    6467ffb1575b8271548a13abfba6374c  gromacs-2018.tar.gz
  3. tar zxf gromacs-2018.tar.gz
  4. cd gromacs-2018/build 

III. 編譯單精確度版本,測試並安裝

  1. mkdir build && cd build
  2. cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gromacs-2018 \
    -DGMX_BUILD_OWN_FFTW=ON \
    -DGMX_GPU=ON \
    -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-9.1 \
    -DREGRESSIONTEST_DOWNLOAD=OFF \
    -DGMX_PHYSICAL_VALIDATION=ON
  3. make -j 20 >& make.log &
  4. make check-phys
  5. sudo make install
第2步指定安裝到/opt/gromacs-2018,開啟GPU支援,用的是CUDA 9.1
第4步是新的physical validation suite,經測試後 make check-phys-run不能夠跑。這個步驟會吃到GPU,可以用nvidia-smi來看吃多少GPU
第5步則是把編譯好的單精確度版本GROMACS塞到指定的安裝資料夾

IV. 編譯雙精確度版本,測試並安裝

  1. cd .. && mv build build.single
  2. mkdir build && cd build
  3. cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gromacs-2018 \
    -DGMX_BUILD_OWN_FFTW=ON \
    -DGMX_DOUBLE=ON \
    -DGMX_DEFAULT_SUFFIX=ON \
    -DREGRESSIONTEST_DOWNLOAD=OFF \
    -DGMX_PHYSICAL_VALIDATION=ON
  4. make -j 20 >& make.log &
  5. make check-phys
  6. sudo make install
前面兩步驟是把之前單精確度的編譯環境存到另外一個資料夾,這樣編譯雙確度版本才不會混在一起~。跟之前一樣,雙精確度版本不支援GPU加速


V. 檢查安裝的檔案,與最主要的程式gmx

  1. file /opt/gromacs-2018/bin/GMXRC
    /opt/gromacs-2018/bin/GMXRC: ASCII text
  2. ldd /opt/gromacs-2018/bin/gmx
  3. ldd /opt/gromacs-2018/bin/gmx_d

VI. 測試編譯好的GROMACS能不能夠跑,與程式的正確性

  1. 以不同的帳號登入
  2. source /opt/gromacs-2018/bin/GMXRC
  3. ./gmxtest.pl all >& gmxtest.single.log &
  4. cat gmxtest.single.log | grep PASS | grep -v ^PASSED
    All 16 simple tests PASSED
    All 61 complex tests PASSED
    All 142 kernel tests PASSED
    All 10 freeenergy tests PASSED
    All 12 rotation tests PASSED
    All 0 extra tests PASSED
    All 48 pdb2gmx tests PASSED
    All 7 essential dynamics tests PASSED
  5. grep -i fail -c gmxtest.single.log
    0
  6. ./gmxtest.pl -double all >& gmxtest.double.log &
  7. cat gmxtest.double.log | grep PASS | grep -v ^PASSED
    All 16 simple tests PASSED
    All 51 complex tests PASSED
    All 142 kernel tests PASSED
    All 10 freeenergy tests PASSED
    All 12 rotation tests PASSED
    All 0 extra tests PASSED
    All 48 pdb2gmx tests PASSED
    All 7 essential dynamics tests PASSED
  8. grep -i fail -c gmxtest.double.log 
    0
第2個指令是指定使用的GROMACS-2018
指令3到5測試單精確度版本
指令6到8測試單精確度版本
詳細內容參考《Testing GROMACS for correctness》一文的說明。

參考資料

_EOF_

沒有留言:

張貼留言