| 17 | 1/1 | 返回列表 |
| 查看: 5096 | 回復: 16 | ||||||
| 【獎勵】 本帖被評價10次,作者gyty增加金幣 8 個 | ||||||
[資源]
關于 VASP 的編譯經(jīng)驗分享
|
||||||
|
(本文首發(fā)于 中國科學院大學 凝聚態(tài)理論與計算材料物理實驗室論壇,轉載請注明出處! http://tcmp2.ucas.ac.cn/bbs/-/message_boards/view_message/34944) 關于 VASP 的編譯,最近有一些心得體會,寫出來拋磚引玉,與大家共享: 1) 首先是編譯環(huán)境的配置: VASP 并行版本的編譯(串行版本的不常用)需要如下工具: Intel Fortran Compiler : ifort 并行編譯器:mpif90 或者 mpiifort 數(shù)學庫:一般常用Intel MKL,如果有其他的當然也可以 關于 Fortran 編譯器,我們一般Intel架構的機器好像只能使用ifort來編譯,如果使用GNU開發(fā)的gfortran編譯,就是一個大大的杯具。從Intel 官網(wǎng)上可以下載Fortran編譯器: http://software.intel.com/en-us/ ... -evaluation-options 安裝Fortran 編譯器的時候好像會自動把MKL安裝上,很是省事。當然,編譯器和數(shù)學庫的安裝是需要許可證的,這個事情 … 大家都是盜版磚家,神通廣大,深藏不露,這里我就不羅嗦了!其實Intel會有提供30天的試用版本,可以嘗試。 關于并行編譯器,可以使用 openmpi mpich IntelMPI 等等,安裝的事情我不想多說了,DEB系列的系統(tǒng)直接apt-get install,其他系列的我不是很了解。當然可以從源代碼編譯安裝,或者比如Intel的并行開發(fā)運行環(huán)境,從官網(wǎng)或者其他途徑下載安裝包,安裝起來應該不是特別復雜。 需要注意的是,使用哪種MPI編譯,就要使用對應的mpirun來并行運行,它們互相之間好像是不兼容,記得好好設置 PATH LD_LIBRARY_PATH 兩個變量。VASP 運行時是一撲成吊絲,還是一飛成高富帥,它們有關鍵性的作用。 2) 關于 VASP 的編譯 1. 在 vasp.x.lib 中執(zhí)行 make,可能需要先把 makefile.linux_ifc_P4 復制為 makefile ,并將其中的 FC=ifc 改為 FC=ifort。 這一步應該是非常easy的! 2. 接下來的才是重頭戲,切換工作目錄到 vasp.x.x ,就是VASP源代碼,在這里,首先要好好地修改 makefile: 同樣,我們從 makefile.linux_ifc_P4 開始,把它復制為 makefile ,然后用純文本編輯器,比如VIM,打開。其中幾個比較關鍵的變量給出設置模板如下: FC=mpiifort -heap-arrays MKLPATH=/share/apps/Intel.Fortran.Compiler.2013.1.117/mkl FFLAGS = -I$(MKLPATH)/include/fftw -FR -lowercase -assume byterecl BLAS= -L$(MKLPATH)/lib/intel64 -lmkl_sequential -lmkl_core -lmkl_intel_lp64 LAPACK= -L$(MKLPATH)/lib/intel64 -lmkl_sequential -lmkl_core -lmkl_intel_lp64 SCA= -L$(MKLPATH)/lib/intel64 -lmkl_scalapack_lp64.a -lmkl_blacs_intelmpi_lp64.a 或者 SCA= -L$(MKLPATH)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 另外,關于FFT函數(shù)庫,有兩種選擇,對于以前的Intel數(shù)學庫,好像只支持 FFT3D = fftmpi.o fftmpi_map.o fft3dfurth.o fft3dlib.o 而2013年新的數(shù)學庫支持一個更快的FFT函數(shù)庫,這時可以采用如下設置: FFT3D = fftmpi.o fftmpi_map.o fftw3d.o fft3dlib.o 可能需要針對 fftw3d.o 設置特殊的編譯規(guī)則: fftw3d.o : fftw3d.F $(CPP) $(FC) -I$(MKLPATH)/include/fftw -FR -lowercase -O1 $(INCS) -c $*$(SUFFIX) 或者干脆直接設置 INCS = -I$(MKLPATH)/include/fftw 關于 makefile 中變量的設置,就說這么多。這里面的事情,參考著上面給出的示例,自己捉摸一下應該沒有太大的問題,都懂的,說太多就沒意思了,點到為止。 好吧,再嘮叨幾句: 如果不是使用 mpiifort 來編譯的話,比如是 mpif90,記得將其調用的 fortran 編譯器設置為 ifort 。有兩種方式:一是重新編譯并行編譯器,在編譯選項中指定其調用的Fortran編譯器,這種方式可能有點麻煩;二是采用比較取巧的方法,由于mpif90默認調用gfortran作為Fortran編譯器,那我們做一個符號鏈接就可以了:gfortran -> ifort。另外需要注意的是,可能同時得修改 BLAS LAPACK 和 SCA 變量中的部分鏈接庫名字,詳情請參考 makefile ,因為其中默認是使用 mpif90 編譯器。 到這里,關于makefile的修改應該就差不多了,保存退出后執(zhí)行 make ,如果人品足夠好,一般等上十分鐘二十分鐘的就可以得到編譯好的可執(zhí)行 vasp 二進制文件。這里有一個小技巧:直接執(zhí)行make編譯是順序進行的,如果使用 make -j N ,則可以同時并發(fā)N個編譯,速度會快上很多(N倍?)。但是由于makefile中沒有針對并發(fā)編譯做特殊的處理,所以這樣操作很容易出錯。當然,出來混,拼的就是人品!如果出錯退出了,不用捉急,一般是由于編譯過程的沖突導致的,再執(zhí)行make順序編譯過這一段,接下來再并發(fā)編譯,照樣是可以的。 最后,編譯過程中遇到問題的時候,不要難過,搞個兩三天才編譯通過是很正常的事情,要淡定,要多上網(wǎng)搜,要多看VASP the GUIDE中的第三節(jié):The installation of VASP,其中有很詳細的解釋。另外,VASP the GUIDE中有一些關于優(yōu)化執(zhí)行效率的討論,很有參考價值,要深入學習,領會精神! 祝編譯順利,VASP開發(fā)小組與我們同在! 2013-06-15 秦光照 |
VASP | @個人收集@ | VASP資料 | Vasp 安裝 |
| 17 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 805600專碩材料與化工348分求調劑 +4 | 上學啦! 2026-04-01 | 4/200 |
|
|---|---|---|---|---|
|
[考研] 275求調劑 +8 | waltzh 2026-04-01 | 8/400 |
|
|
[考研] 0710生物學求調劑 +5 | manman511 2026-04-01 | 5/250 |
|
|
[考研] 建環(huán),能源,土木老師路過看一看。! +4 | 嘿嘿uu 2026-04-01 | 4/200 |
|
|
[考研] 318求調劑 +5 | 吸喵有害笙命 2026-04-01 | 5/250 |
|
|
[考研] 材料與化工(0856)304求B區(qū)調劑 +8 | 邱gl 2026-03-30 | 16/800 |
|
|
[考研] 08工科275分求調劑 +12 | AaAa7420 2026-03-31 | 12/600 |
|
|
[考研] 求生物學調劑 +7 | 15172915737 2026-04-01 | 7/350 |
|
|
[考研] 302求調劑一志愿北航070300,本科鄭大化學 +8 | 圣日耳曼條 2026-04-01 | 10/500 |
|
|
[考研] 336求調劑 +3 | kiyy 2026-04-01 | 3/150 |
|
|
[考研] 339求調劑 +5 | zjjkt 2026-03-31 | 5/250 |
|
|
[教師之家] 張雪峰戛然而止的飛馳人生 +3 | yexuqing 2026-03-26 | 4/200 |
|
|
[考研] 085602 307分 求調劑 +10 | 不知道叫什么! 2026-03-26 | 10/500 |
|
|
[考研] 085601英二數(shù)二求調劑 總分325 +4 | 余航航 2026-03-31 | 4/200 |
|
|
[考研] 323分 食品與營養(yǎng)調劑 +3 | 嘿ooo 2026-03-31 | 3/150 |
|
|
[考研] 哈爾濱工業(yè)大學材料與化工專碩378求調劑 +3 | 塔比烏斯 2026-03-30 | 3/150 |
|
|
[考研] 一志愿南開大學0710生物學359求調劑 +5 | 兔兔兔111223314 2026-03-29 | 7/350 |
|
|
[考研] 334分 一志愿武理 材料求調劑 +16 | 李李不服輸 2026-03-26 | 16/800 |
|
|
[考研] 材料專碩 085600求調劑 +7 | BBQ233 2026-03-30 | 7/350 |
|
|
[考研] 298求調劑 +4 | 種圣賜 2026-03-28 | 4/200 |
|