• Gromacs 5.1.1與4.6.7編譯方法

    注:本文已經過時,最新版本GROMACS安裝方法參見《GROMACS的安裝方法》(http://www.shanxitv.org/457)。

    Gromacs 5.1.1與4.6.7編譯方法

    文/Sobereva @北京科音  Last update: 2016-Jan-25



    Gromacs 5.0(5.1.1編譯方法與此完全一樣)

    編譯條件:RHEL6-U1 64bit, Intel Q6600, root。

    必須有cmake 2.8.8及以上。MKL、icc不是必需的,用MKL不比FFTW更快,用icc比gcc優勢也不明顯,故沒必要裝。單機并行不用裝MPI庫,因為用的是OpenMP并行。跨節點運行基于MPI,可以用OpenMPI 1.6及以上版本或MPICH 1.4.1及以上版本。

    運行cmake -version,如果顯示的版本低于2.8.8,到這里下載最新的cmake源代碼:http://www.cmake.org/cmake/resources/software.html
    解壓cmake,進入其目錄,運行./bootstrap;make -j;make install,就被安裝到了/usr/local/bin下面。刪掉cmake目錄。

    tar -zxf gromacs-5.0.tar.gz解壓之,進入Gromacs的解壓目錄
    mkdir build
    cd build
    cmake .. -DGMX_BUILD_OWN_FFTW=ON -DCMAKE_INSTALL_PREFIX=/sob/gromacs50 (注:如果用的CPU比較新,編譯器版本又比較老,比如RHEL6自帶的,這一步可能會報錯提示說編譯器不支持AVX2指令集,此時應當再加上-DGMX_SIMD=AVX_256來強制用AVX1指令集)
    make -j       //-j代表調用所有核并行編譯
    make install
    在make過程中Gromacs會自動下載FFTW3.3.3并編譯之。下載和編譯總共只需幾分鐘。程序被安裝到了/sob/gromacs50。刪掉Gromacs安裝目錄,并在用戶的.bashrc里加上export PATH=$PATH:/sob/gromacs50/bin。

    如果要編譯雙精度版本,cmake的時候寫上-DGMX_DOUBLE=ON。此時不兼容GPU加速。編譯出來的可執行文件默認都帶著_d后綴,因此可以和單精度版安裝到同一目錄,不會沖突。


    **** CUDA版安裝方法
    Gromacs通過CUDA支持nVidia的GPU來加速動力學計算,效率很好。如果用的是4核CPU,用高端GeForce顯卡可加速>3倍,性價比很高。
    先去nVidia網站下載并安裝CUDA toolkit到默認路徑。其它同上,區別僅是cmake這一步:
    cmake .. -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-5.5 -DGMX_BUILD_OWN_FFTW=ON -DCMAKE_INSTALL_PREFIX=/sob/gromacs50

    Gromacs從5.0開始也支持Intel XEON phi來加速計算,但只是初步支持,性價也遠低于使用高端GeForce顯卡,故這里就不說了。


    **** 自己裝FFTW的情況
    有時候安裝的機子不通網,Gromacs編譯時沒法自動聯網下載FFTW,就必須先自行下載安裝FFTW,然后在編譯時調用。過程是:去ftp://ftp.fftw.org/pub/fftw/下載FFTW3.3.3或更高版本,解壓并進入目錄,運行
    ./configure --prefix=/sob/fftw333 --enable-sse2 --enable-float --enable-shared
    make -j
    make install
    在編譯Gromacs的cmake那步之前先運行
    export CMAKE_PREFIX_PATH=/sob/fftw333
    然后在cmake時去掉-DGMX_BUILD_OWN_FFTW=ON。
    注意--enable-float代表編譯單精度版本FFTW。如果是給雙精度Gromacs用的,應該把--enable-float去掉。


    **** 編譯MPI版的方法
    去http://www.open-mpi.org下載openmpi,這里用1.6.5版。解壓并進入目錄后運行
    ./configure
    make all install
    然后在cmake時加上-DGMX_MPI=on即可。編譯出來的文件都帶著_mpi后綴,因此和單節點并行的版本可以裝到一起,不會沖突。


    注:Gromacs充分對主流的CPU支持的SIMD指令集進行優化,編譯時會自動檢測CPU架構,采用適當的編譯選項,充分利用支持的指令集達到最佳性能。因此,如果幾個機子的CPU架構不同,不要把編譯好的Gromacs程序直接互拷,否則運行會出問題。


    Gromacs 4.6.7

    編譯方法和5.0基本沒有任何差異,下面只是簡要寫寫,具體請參考上面的內容。

    編譯條件:RHEL6-U1 64bit, Q6600, root。
    gmx 4.6開始完全使用cmake而不用./configure。必須有cmake 2.8及以上。MKL、icc不需要裝。單機并行不用裝MPI庫,跨節點運行可以用openMPI或mpich。安裝方法參考了http://www.gromacs.org/Documentation/Installation_Instructions。

    到這里下載最新的cmake源代碼:http://www.cmake.org/cmake/resources/software.html
    解壓cmake,進入其目錄,運行./bootstrap;make;make install,就被安裝到了/usr/local/bin下面。刪掉cmake目錄。

    tar -zxf gromacs-4.6.7.tar.gz解壓之,進入gmx的解壓目錄
    mkdir build
    cd build
    cmake .. -DGMX_BUILD_OWN_FFTW=ON -DCMAKE_INSTALL_PREFIX=/sob/gromacs467
    make -j
    make install
    在make過程中gmx會自動下載fftw3.3.2并編譯之。下載和編譯總共只耗時<3分鐘。程序被安裝到了/sob/gromacs467。刪掉gmx安裝包及解壓目錄。

    如果要編譯雙精度版本,cmake的時候寫上-DGMX_DOUBLE=ON。此時不兼容GPU加速。編譯出來的可執行文件默認都帶著_d后綴。

    **** CUDA版安裝方法
    安裝CUDA toolkit。其它同上,區別僅是cmake這一步:
    cmake .. -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-5.5 -DGMX_BUILD_OWN_FFTW=ON -DCMAKE_INSTALL_PREFIX=/sob/gromacs467gpu

    **** 自己裝fftw的情況
    解壓fftw3.3.2,進去,運行
    ./configure --prefix=/sob/fftw332 --enable-sse2 --enable-float --enable-shared
    make
    make install
    然后gmx里的cmake步驟改為
    export CMAKE_PREFIX_PATH=/sob/fftw332
    cmake .. -DCMAKE_INSTALL_PREFIX=/sob/gromacs467
    如果用于編譯雙精度gmx,--enable-float應去掉
    久久精品国产99久久香蕉