| 24小時(shí)熱門(mén)版塊排行榜 |
| 17 | 1/1 | 返回列表 |
| 查看: 5099 | 回復(fù): 16 | ||||||
| 【獎(jiǎng)勵(lì)】 本帖被評(píng)價(jià)10次,作者gyty增加金幣 8 個(gè) | ||||||
gyty木蟲(chóng) (初入文壇)
|
[資源]
關(guān)于 VASP 的編譯經(jīng)驗(yàn)分享
|
|||||
|
(本文首發(fā)于 中國(guó)科學(xué)院大學(xué) 凝聚態(tài)理論與計(jì)算材料物理實(shí)驗(yàn)室論壇,轉(zhuǎn)載請(qǐng)注明出處! http://tcmp2.ucas.ac.cn/bbs/-/message_boards/view_message/34944) 關(guān)于 VASP 的編譯,最近有一些心得體會(huì),寫(xiě)出來(lái)拋磚引玉,與大家共享: 1) 首先是編譯環(huán)境的配置: VASP 并行版本的編譯(串行版本的不常用)需要如下工具: Intel Fortran Compiler : ifort 并行編譯器:mpif90 或者 mpiifort 數(shù)學(xué)庫(kù):一般常用Intel MKL,如果有其他的當(dāng)然也可以 關(guān)于 Fortran 編譯器,我們一般Intel架構(gòu)的機(jī)器好像只能使用ifort來(lái)編譯,如果使用GNU開(kāi)發(fā)的gfortran編譯,就是一個(gè)大大的杯具。從Intel 官網(wǎng)上可以下載Fortran編譯器: http://software.intel.com/en-us/ ... -evaluation-options 安裝Fortran 編譯器的時(shí)候好像會(huì)自動(dòng)把MKL安裝上,很是省事。當(dāng)然,編譯器和數(shù)學(xué)庫(kù)的安裝是需要許可證的,這個(gè)事情 … 大家都是盜版磚家,神通廣大,深藏不露,這里我就不羅嗦了!其實(shí)Intel會(huì)有提供30天的試用版本,可以嘗試。 關(guān)于并行編譯器,可以使用 openmpi mpich IntelMPI 等等,安裝的事情我不想多說(shuō)了,DEB系列的系統(tǒng)直接apt-get install,其他系列的我不是很了解。當(dāng)然可以從源代碼編譯安裝,或者比如Intel的并行開(kāi)發(fā)運(yùn)行環(huán)境,從官網(wǎng)或者其他途徑下載安裝包,安裝起來(lái)應(yīng)該不是特別復(fù)雜。 需要注意的是,使用哪種MPI編譯,就要使用對(duì)應(yīng)的mpirun來(lái)并行運(yùn)行,它們互相之間好像是不兼容,記得好好設(shè)置 PATH LD_LIBRARY_PATH 兩個(gè)變量。VASP 運(yùn)行時(shí)是一撲成吊絲,還是一飛成高富帥,它們有關(guān)鍵性的作用。 2) 關(guān)于 VASP 的編譯 1. 在 vasp.x.lib 中執(zhí)行 make,可能需要先把 makefile.linux_ifc_P4 復(fù)制為 makefile ,并將其中的 FC=ifc 改為 FC=ifort。 這一步應(yīng)該是非常easy的! 2. 接下來(lái)的才是重頭戲,切換工作目錄到 vasp.x.x ,就是VASP源代碼,在這里,首先要好好地修改 makefile: 同樣,我們從 makefile.linux_ifc_P4 開(kāi)始,把它復(fù)制為 makefile ,然后用純文本編輯器,比如VIM,打開(kāi)。其中幾個(gè)比較關(guān)鍵的變量給出設(shè)置模板如下: 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 另外,關(guān)于FFT函數(shù)庫(kù),有兩種選擇,對(duì)于以前的Intel數(shù)學(xué)庫(kù),好像只支持 FFT3D = fftmpi.o fftmpi_map.o fft3dfurth.o fft3dlib.o 而2013年新的數(shù)學(xué)庫(kù)支持一個(gè)更快的FFT函數(shù)庫(kù),這時(shí)可以采用如下設(shè)置: FFT3D = fftmpi.o fftmpi_map.o fftw3d.o fft3dlib.o 可能需要針對(duì) fftw3d.o 設(shè)置特殊的編譯規(guī)則: fftw3d.o : fftw3d.F $(CPP) $(FC) -I$(MKLPATH)/include/fftw -FR -lowercase -O1 $(INCS) -c $*$(SUFFIX) 或者干脆直接設(shè)置 INCS = -I$(MKLPATH)/include/fftw 關(guān)于 makefile 中變量的設(shè)置,就說(shuō)這么多。這里面的事情,參考著上面給出的示例,自己捉摸一下應(yīng)該沒(méi)有太大的問(wèn)題,都懂的,說(shuō)太多就沒(méi)意思了,點(diǎn)到為止。 好吧,再?lài)Z叨幾句: 如果不是使用 mpiifort 來(lái)編譯的話(huà),比如是 mpif90,記得將其調(diào)用的 fortran 編譯器設(shè)置為 ifort 。有兩種方式:一是重新編譯并行編譯器,在編譯選項(xiàng)中指定其調(diào)用的Fortran編譯器,這種方式可能有點(diǎn)麻煩;二是采用比較取巧的方法,由于mpif90默認(rèn)調(diào)用gfortran作為Fortran編譯器,那我們做一個(gè)符號(hào)鏈接就可以了:gfortran -> ifort。另外需要注意的是,可能同時(shí)得修改 BLAS LAPACK 和 SCA 變量中的部分鏈接庫(kù)名字,詳情請(qǐng)參考 makefile ,因?yàn)槠渲心J(rèn)是使用 mpif90 編譯器。 到這里,關(guān)于makefile的修改應(yīng)該就差不多了,保存退出后執(zhí)行 make ,如果人品足夠好,一般等上十分鐘二十分鐘的就可以得到編譯好的可執(zhí)行 vasp 二進(jìn)制文件。這里有一個(gè)小技巧:直接執(zhí)行make編譯是順序進(jìn)行的,如果使用 make -j N ,則可以同時(shí)并發(fā)N個(gè)編譯,速度會(huì)快上很多(N倍?)。但是由于makefile中沒(méi)有針對(duì)并發(fā)編譯做特殊的處理,所以這樣操作很容易出錯(cuò)。當(dāng)然,出來(lái)混,拼的就是人品!如果出錯(cuò)退出了,不用捉急,一般是由于編譯過(guò)程的沖突導(dǎo)致的,再執(zhí)行make順序編譯過(guò)這一段,接下來(lái)再并發(fā)編譯,照樣是可以的。 最后,編譯過(guò)程中遇到問(wèn)題的時(shí)候,不要難過(guò),搞個(gè)兩三天才編譯通過(guò)是很正常的事情,要淡定,要多上網(wǎng)搜,要多看VASP the GUIDE中的第三節(jié):The installation of VASP,其中有很詳細(xì)的解釋。另外,VASP the GUIDE中有一些關(guān)于優(yōu)化執(zhí)行效率的討論,很有參考價(jià)值,要深入學(xué)習(xí),領(lǐng)會(huì)精神! 祝編譯順利,VASP開(kāi)發(fā)小組與我們同在! 2013-06-15 秦光照 |
VASP | @個(gè)人收集@ | VASP資料 | Vasp 安裝 |
銅蟲(chóng) (初入文壇)
木蟲(chóng) (正式寫(xiě)手)
鐵桿木蟲(chóng) (著名寫(xiě)手)
木蟲(chóng) (小有名氣)
木蟲(chóng) (初入文壇)
至尊木蟲(chóng) (著名寫(xiě)手)
木蟲(chóng) (初入文壇)
至尊木蟲(chóng) (著名寫(xiě)手)
木蟲(chóng) (初入文壇)
至尊木蟲(chóng) (著名寫(xiě)手)
木蟲(chóng) (初入文壇)
銅蟲(chóng) (小有名氣)
銀蟲(chóng) (正式寫(xiě)手)
| 17 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 292分,材料與化工,申請(qǐng)調(diào)劑 +18 | 程晴之 2026-04-01 | 20/1000 |
|
|---|---|---|---|---|
|
[考研] 275求調(diào)劑 +12 | waltzh 2026-04-01 | 12/600 |
|
|
[考研] 材料調(diào)劑 +14 | 一樣YWY 2026-04-01 | 14/700 |
|
|
[考研] 一志愿085600中科院寧波所276分求調(diào)劑 +22 | 材料學(xué)257求調(diào)劑 2026-03-28 | 23/1150 |
|
|
[考研] 求調(diào)劑 +4 | 圖鑒212 2026-03-30 | 5/250 |
|
|
[考研] 262求調(diào)劑 +9 | 勵(lì)志一定發(fā)文章 2026-03-31 | 10/500 |
|
|
[考研] 070300求調(diào)劑306分 +5 | 26要上岸 2026-03-27 | 5/250 |
|
|
[考研] 生物學(xué)296求調(diào)劑 +10 | 湯圓包 2026-03-29 | 14/700 |
|
|
[考研] 求調(diào)劑:085600材料與化工,考材科基,總分319 +17 | 678lucky 2026-03-31 | 21/1050 |
|
|
[考博] 26申博 +4 | 加油沖啊! 2026-03-26 | 4/200 |
|
|
[考研] 080200學(xué)碩,機(jī)械工程專(zhuān)業(yè)277分,求帶走! +4 | 瓶子PZ 2026-03-31 | 4/200 |
|
|
[考研] 0856 335分 +9 | cccchenso 2026-03-29 | 9/450 |
|
|
[考研] 求收留 +8 | 1943443204 2026-03-28 | 8/400 |
|
|
[考研] 276求調(diào)劑 +3 | 趙久華 2026-03-29 | 3/150 |
|
|
[考研] 323分 食品與營(yíng)養(yǎng)調(diào)劑 +3 | 嘿ooo 2026-03-31 | 3/150 |
|
|
[考研] 材料專(zhuān)碩 085600求調(diào)劑 +7 | BBQ233 2026-03-30 | 7/350 |
|
|
[考研] 340求調(diào)劑 +6 | Amber00 2026-03-26 | 6/300 |
|
|
[考研] 085602 化工專(zhuān)碩 338分 求調(diào)劑 +12 | 路癡小琪 2026-03-27 | 12/600 |
|
|
[考研] 一志愿吉大071010,316分求調(diào)劑 +3 | xgbiknn 2026-03-27 | 3/150 |
|
|
[考研] 中國(guó)科學(xué)院深圳先進(jìn)技術(shù)研究院-光纖傳感課題組招生-中國(guó)科學(xué)院大學(xué)、深圳理工大學(xué)聯(lián)培 +5 | YangTyu1 2026-03-26 | 5/250 |
|