Amber14安裝方法
以前版本的安裝方法參見:
《Amber11+AmberTools1.5及CUDA版安裝方法,以及Amber12安裝方法》(http://www.shanxitv.org/103)
《Amber10安裝方法》(http://www.shanxitv.org/3)
Amber14安裝方法
文/Sobereva @北京科音 2014-Nov-22
編譯環境:RHEL6U1-64bit, root, bash。硬件:Core 2 Q6600,GTX770。安裝到/sob/amber14。
Amber越來越多的東西都被挪到免費開源的AmberTools里面了。Amber14只剩PMEMD一個模塊了,其它所有模塊,包括曾經amber最核心的sander,都已經弄到AmberTools14里了。可以說,光靠AmberTools就已經足夠進行動力學模擬了。如果需要更快的速度和GPU加速,才需要花錢買Amber。
====準備工作====
準備好Amber14.tar.bz2,去官網免費下載AmberTools14.tar.bz2。
安裝ifort,icc 12.1.0到默認路徑(其它版本我沒試過)。MKL對性能影響很小,這里不用MKL。
編譯openmpi:
去http://www.open-mpi.org下載OpenMPI 1.6.5(更新的版本大抵也可以,筆者沒測試),解壓到/sob目錄下,進入其目錄,運行
./configure CC=icc CXX=icpc FC=ifort F77=ifort; make all install
此時openmpi的可執行文件、庫文件、頭文件等就被裝到了/usr/local里面的對應目錄下。
然后在.bashrc里加上
export AMBERHOME=/sob/amber14
export PATH=$PATH:$AMBERHOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$AMBERHOME/lib
運行bash使環境變量生效。
進入/sob目錄,將AmberTools14.tar.bz2在當前目錄下解壓。將Amber14.tar.bz2也在當前目錄下解壓,這會合并掉一些目錄,覆蓋幾個文件。然后amber14目錄下應該會看到Ambertools、src、benchmarks等目錄。
要保持聯網暢通,以使得安裝程序能自動使用官網上的補丁
====編譯串行版本====
cd /sob/amber14
./configure intel,程序檢測到有補丁文件,輸入y。
運行make install開始編譯,耗時20多分鐘。
運行make test進行測試。測試時間相當長,兩個小時左右。測試內容包括面向第三方量化程序的QMMM接口,如果機子上有gaussian、orca、terachem等等,在測試過程中都會被調用。筆者這里有11個測試failure,大部分是和orca有關的,這無關緊要。測試結果在/sob/amber14/logs目錄下有匯總。
====編譯并行版本====
./configure -mpi intel
make install
會在bin目錄下生成MMPBSA.py.MPI、pmemd.amoeba.MPI、pmemd.MPI、sander.LES.MPI、sander.MPI等帶.MPI后綴的文件。
進行測試,-np后面是測試時用的核數。
export DO_PARALLEL="mpirun -np 4"
make test
一般的四核機子應該大概在半個小時內完成。筆者458個測試悉數通過。
編譯OpenMP并行版NAB和Cpptraj
./configure -openmp intel
make openmp
編譯出來的名字和串行版本一樣仍叫nab和cpptraj。
====編譯GPU版PMEMD====
先去nVidia網站下載并安裝CUDA toolkit到默認路徑,筆者用的是5.5。然后在.bashrc里加入
export CUDA_HOME=/usr/local/cuda-5.5
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
運行bash使之生效
cd /sob/amber14
./configure -cuda intel
make install
./configure -cuda -mpi intel
make install
很快就編譯完了,bin目錄下產生了pmemd.cuda和pmemd.cuda.MPI。這是默認的SPFP版本,是精度和速度的最佳平衡。還有種DPFP版本,把-cuda改為-cuda_DPFP就可以編譯,精度更高但計算消耗也明顯更高,一般沒必要。
測試串行版GPU版
make test.cuda
測試并行版GPU版
export DO_PARALLEL="mpirun -np 4"
make test.cuda_parallel
筆者這里提示的Possible failure竟接近半數。原因大抵是GPU跑動力學的重現性本來就比CPU跑更低,所以和參考值偏差容易較明顯,但這也不能說當前設備跑的結果不合理,只不過是探索相空間的不同區域罷了。