




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、VASP 編譯方法以及錯(cuò)誤匯總第一步:綜述(略)第二步:VASP 源碼包VASP 并不是免費(fèi)要求:,如果需要可以給作者寫信1、MKL 有非商業(yè)版本可以免費(fèi)2、C+和 Fortran 編譯器3、MPI(Lam/mpi、openmpi、 el MPI 均可)第三步:設(shè)定 解壓 vasp 源碼包$tar -xvzf vasp.tgz這將建立一個(gè)名為 vasp 的文件夾。另外請(qǐng)確認(rèn) mpi、C+、Fortran 編譯器都已正確安裝,并設(shè)定好相關(guān)的LD_LIBRARY_PATH 路徑PATH 路徑和第四步:編譯 VASP編譯 MKL 的 FFTW 函數(shù)庫進(jìn)入 MKL 安裝路徑,如果按照默認(rèn)路徑$cd /
2、opt/el/mkl/18/erfa/fftw3xf輸入一下命令編譯 fftw 3.x Fortran 函數(shù)庫(Root 權(quán)限。el名是 em64t)注:這步命令需要$make libem64t compiler=el編譯 libdmy.a進(jìn)入 vasp.X.lib 路徑運(yùn)行以下命令編譯#make -f makefile.linux_ifc_P4編譯完成后,在當(dāng)前文件夾下會(huì)出現(xiàn) libdmy.a編譯 VASP進(jìn)入 vasp.X.X 路徑編輯 makefile.linux_ifc_P4 做出一下更改。#BLAS=-L/opt/el/mkl/18/lib/em64t-lmkl_el_lp64-lp
3、thread-lmkl_el_lp64-lmkl_blacs_lp64-lmkl_el_thread LAPACK=-L/opt/-lmkl_el_thread-lmkl_core-liomp5#el/mkl/18/lib/em64t-lmkl_core -liomp5 -lpthread-lmkl_blacs_lp64# FFT3D= fftmpiw.o fftmpi_map.offt3dlib.o /opt/el/mkl/18/lib/em64t /libfftw3xf_el.a更改 Fortran 的編譯參數(shù),F(xiàn)FLAGS= -I/opt/el/mkl/18/include/fftw -
4、FR -lower_case輸入命令編譯$make -f makefile.linux_ifc_P4以及解決方法(并不限于el好啦,基于這個(gè)編譯方在以后幾天可能出現(xiàn)編譯器)。這個(gè)帖子留一點(diǎn)空間用于方法的總結(jié)和更新。歡迎。!wangle_xq (站內(nèi)聯(lián)系 TA)如果按照上面的方法,卻忘記修改 Fortran 編譯器的編譯參數(shù),可能會(huì)遇到以下問題。: Error: fftw3d.f90, line 501: Cannot open include file fftw3.f include fftw3.f: Error: fftw3d.f90, line 510: This name does no
5、ve a type, and musve an explicittype.FFTW_FORWARD, FFTW_ESTIMATE)解決方法:1、:Modify makefile to include fftw3.f fromFFLAGS= -I/include/fftwel MKLhe FFLAGS line:2、可用,不。原因是每次如果 make clean 會(huì)刪除 fftw3.fCopy fftw3.f from /el MKL include/fftw to the vasp.x.x directory.$cp /include/fftw3.f /vasp.4.6wangle_xq (站
6、內(nèi)聯(lián)系 TA)錯(cuò)誤信息:./prepros fft3dlib.f90 -DHOST=LinuxIFC -Dkind8 -DNGXhalf -DCACHE_SIZE=12000-DPGF90 -Davoidallocifort -FR -lowercase -O1 -tpp7 -xW -unroll0 -e95 -vec_report3 -c fft3dlib.f90ifort:d line remark #10148: option -tp not supportedfft3dlib.f90(1725): error #6477: Fortran 95 does not allow this
7、s!DIR$ IVDEPement or directive.fft3dlib.f90(1753): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(1786): error #6477: Fortran 95 does not allow this sement or directive.!DIR$ IVDEPfft3dlib.f90(1819): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPeme
8、nt or directive.fft3dlib.f90(1864): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(1902): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(1955): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive
9、.fft3dlib.f90(2006): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2083): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2147): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2
10、232): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2323): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2474): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2556): error #64
11、77: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2656): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2684): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2717): error #6477: Fortran 95
12、does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2750): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2795): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2833): error #6477: Fortran 95 does not allow
13、this s!DIR$ IVDEPement or directive.fft3dlib.f90(2886): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(2937): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(3014): error #6477: Fortran 95 does not allow this s!DIR$ IVD
14、EPement or directive.fft3dlib.f90(3078): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(3163): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(3254): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or dire
15、ctive.fft3dlib.f90(3405): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(3487): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.f90(3577): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.fft3dlib.
16、f90(3609): error #6477: Fortran 95 does not allow this s!DIR$ IVDEPement or directive.(4635): catastrophic error: Too many errors, exiting compilation aborted for fft3dlib.f90 (code 1)make: * Error 1解決方法:在 makefile 中去掉-e95 (位于 makefile.linux_ifc_P4 文件 344 行 46-53 字符)這個(gè)編譯參數(shù)。原因是這個(gè)參數(shù)使得 fortran 編譯器中不符合
17、F95 的部分認(rèn)為是錯(cuò)誤而不是警告而不再進(jìn)行編譯。wangle_xq (站內(nèi)聯(lián)系 TA)這個(gè)錯(cuò)誤不是編譯過程中發(fā)生的,而是編譯可以成功,但是運(yùn)行 vasp 時(shí)出現(xiàn)的錯(cuò)誤。錯(cuò)誤代碼:vasp.4.6.34 5Dec07 complexCAR found : 2 types and3 ionsLDA part: xc-table for Pade appr. of PerdewCAR, INCAR and KPOS ok, starting setupWARNING: wrap around errors must be expectedFFT: planning .reading WAVECAR
18、1WARNING: random wavefunctions but nentering main loopay for mixing, default for NELMDLNEdEd eps 0.21564E+02-0.40130E+02-0.15040E+02-0.43202E+00-0.71739E-02ncg-0.14922E+03-0.40124E+02-0.15040E+02-0.43202E+00-0.71739E-02rms1632241632rms(c) 0.440E+020.652E+010.689E+010.130E+010.162E+00BRDAV: DAV: DAV:
19、 DAV:DAV:123450.215643175826E+02-0.185660933399E+02-0.336060776311E+02-0.340380979708E+02-0.340452718702E+02MIX: very serious problemsthe old and the new charge density differold charge density:0.221E+019.84302 new11.18924DAV:6-0.389894891525E+02-0.49442E+01-0.51891E+01160.173E+01BRMIX: very serious
20、 problemsthe old and the new charge density differold charge density:0.248E+0111.80017 new10.68146DAV:7-0.426656011228E+02-0.36761E+01-0.42767E+00320.982E+00BRMIX: very serious problemsthe old and the new charge density differold charge density:0.215E+0111.45066 new10.79116DAV:8-0.428501571831E+02-0
21、.18456E+00-0.74593E-02320.165E+00BRMIX: very serious problemsthe old and the new charge density differold charge density:0.210E+0111.51883 new10.80338DAV:9-0.474727980714E+02-0.46226E+01-0.36007E+00160.346E+00BRMIX: very serious problemsthe old and the new charge density differold charge density:11.
22、52944 new0.152E+0111.05425解決方法:1、OFLAG=-O3 -xW 改成 OFLAG=-O1 看看 或許是優(yōu)化參數(shù)響仍然未知,期待補(bǔ)充)(注,優(yōu)化參數(shù)的影2、用ifort10 就會(huì)出現(xiàn)這個(gè)問題,vasp上說這個(gè)說的很多了。改用 ifort9 或者的ifort11都可以完美解決這個(gè)問題。(注:編譯器版本問題仍然未知,期待補(bǔ)充)wangle_xq (站內(nèi)聯(lián)系 TA)最后一個(gè)是我能遇到的比較麻煩,還沒解決。拋磚引玉吧。在采用AS 3.8.0(3.8.3) 的 BLAS 編譯 vasp 時(shí),會(huì)遇到可以編譯,但無法運(yùn)行。錯(cuò)誤代碼:vasp.4.6.34 5Dec07 compl
23、ex CAR found : 2 types and3 ionsLDA part: xc-table for Pade appr. of PerdewCAR, INCAR and KPOS ok, starting setupWARNING: wrap around errors must be expectedFFT: planning .reading WAVECAR1WARNING: random wavefunctions but nentering main loopay for mixing, default for NELMDLNEdEd epsncgrmsrms(c)forrt
24、l: severe (174): SIGSEGV, segmenion fault occurredImage vasp vasp vasp vasp vasp vasp vasp vasp vasp vasp libc.so.6vaspPCRoutineLineSource00000000007898A00000000000785274000000000072C83700000000007414AF0000000000755E51000000000077234F00000000005DF87400000000005E60B900000000004210170000000000403CCCUn
25、known Unknown Unknown Unknown Unknown Unknown Unknown Unknown UnknownUnknownUnknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown UnknownUnknownUnknown Unknown Unknown Unknown Unknown Unknown Unknown Unknown UnknownUnknown00007F5BB1F8B586 Unknown0000000000403BC9 UnknownUnknown UnknownUnkno
26、wn Unknown解決方法:期待補(bǔ)充wuli8 (站內(nèi)聯(lián)系 TA)我補(bǔ)充并行版的幾個(gè)資料::Dwuli8 (站內(nèi)聯(lián)系 TA)首先,安裝和配置 MPICH2 MPICH2 是 MPI(Message-Passingerface)的一個(gè)應(yīng)用實(shí)現(xiàn),支持的 MPI-2 接口標(biāo)準(zhǔn),是用于并行運(yùn)算的工具,在程序設(shè)計(jì)語言上支持 C/C+和 Fortran。最近因?yàn)橛许?xiàng)目需要的計(jì)算量比較大,所以就學(xué)習(xí)使用了 MPICH2,在此根據(jù)網(wǎng)絡(luò)上查詢的相關(guān)信息和際使用經(jīng)歷,分別總結(jié)一下 MPICH2 在 windows 和 linux 下基本的安裝使用方法。的實(shí)MPICH2 的主頁是新版本 MPICH2 的. ch2
27、/index.htm,在這個(gè)頁面上就能找到各最地址,其中還包括源代碼,我在開始作這個(gè)項(xiàng)目的時(shí)候版本是windows 版 mpich2-1.0.5p2,源代碼 mpich2-1.0.5p4。的項(xiàng)目是一個(gè) CentOS 版 linux 下的程序,所以最終是要在 linux 下運(yùn)行的,但是又舍不得 windows,于是就打算可能的話就在 windows 下寫程序,用 MinGW 加 windows 版的 MPICH2 編譯調(diào)試,通過后再到 wmware虛擬機(jī)組成的簡單集群作測(cè)試。所以,為避免不必要的麻煩,就要一下 windows 和 linux下的 MPICH2 版本,而且不打算用的,因此決定用 m
28、pich2-1.0.5 版。但是,如果在主頁上找的話是沒有以前舊版本的的(至少我沒找到),只有版本的 http 和 ftp 下載。這難不住我等有心之人,既然提供了 ftp,那咱就直接到他 ftp 服務(wù)器上找,源代碼的地址是 ftp:/ftp.mcs.anl./0.5p4.tar.gz,把后面文件名去掉就應(yīng)該是文件的ftp 存放路徑,把這個(gè)路徑直接寫到瀏覽器地址欄里回車(偶用的是 FireFox2),就能看到他們服務(wù)器上這個(gè)目錄的文件列表,里面就有 1.0.5 版的 windows 安裝文件和源代碼包,分別為 ftp:/ftp.mcs.anl./ . in32-ia32.msi 和 ftp:/f
29、tp.mcs.anl./ . -1.0.5.tar.gz 。msi 文件不用多說,這是 windows 下安裝用的,源代碼包拿來在 linux 下用。文檔還是主頁上就有MPICH2 的安裝和使用指南文檔,主要有三個(gè),分別是Users Guide,InstallersGuide 和 Windows Developers Guide,都 down 下來看看很有用的說。具體開發(fā)用的有關(guān) MPI標(biāo)準(zhǔn)的文檔在 MPI是 MPI-2: Exten的里都有,地址是,我覺得最有用的s to the Message-Passingerface。Windows 下的安裝配置我用的參與計(jì)算的系統(tǒng)都是 Windows
30、XP Pro SP2,安裝的過程沒什么太特別的,一般就是默認(rèn)就可以,只是其中有個(gè)地方要填一個(gè)什么 passphrase,上面提示說所有系統(tǒng)都要用相同的passphrase,照做就是了,在所有參與計(jì)算的結(jié)點(diǎn)機(jī)器上都填一樣的 passphrase 就好了。另外就是需要.net framework 2 的運(yùn)行環(huán)境。默認(rèn)安裝的位置是C:Program FilesMPICH2,下面的bin 目錄下是系統(tǒng)配置運(yùn)行需要的程序,為了方便在控制臺(tái)使用,可以把 C:Program FilesMPICH2bin 加到系統(tǒng)的 PATH 變量中去。Include 是頭文件,開發(fā)的時(shí)候用,lib 是程序的時(shí)候用的庫文件。
31、Jumpshot 下有個(gè) pdf的文檔,干什么用的這個(gè)文檔,我沒仔細(xì)看,感覺我暫時(shí)還用不上。Exles 下面是一個(gè)樣本程序,就是一個(gè)用 MPI 計(jì)算圓周率的程序,分別有 C,C+和 Fortran 版,C/C+的應(yīng)該可以用 VS2003 以上版本打開。同時(shí),安裝程序還會(huì)自系統(tǒng)一個(gè)服務(wù) MPICH2Pros Manager,從控制面板管理工具服務(wù)里就能找到,這是管理運(yùn)行 MPI 程序的一個(gè)服務(wù),安裝好后就是自動(dòng)啟動(dòng)的,所以一般也就不用動(dòng)它。安裝完畢后開始菜單程序中就添加了一個(gè) MPICH2 目錄,其中就有上面提到的 Jumpshot,另外 wmpiconfig.exe 是用來配置運(yùn)行環(huán)境的,我在
32、網(wǎng)上有找到的說明都是以前舊版本的,和現(xiàn)在的差別比較大,感覺這新版本用的不爽,沒搞明白這個(gè)程序該咋用,不過好像默認(rèn)狀態(tài)下不改什么就能正常使用,所以也就不管它了。wmpiregister.exe 則是用來用戶的,使用 MPI 之前需要在這個(gè)程序里一個(gè)系統(tǒng)里已經(jīng)存在的用戶,而且這個(gè)用戶必需擁有管理員權(quán)限,擁有運(yùn)行加了一個(gè)管理員 mpi,安裝了的 MPI 系統(tǒng)的能力。比如我就在所有參與運(yùn)算的機(jī)器上添也是 mpi。接下來,就可以開始試著運(yùn)行一下 MPI 的程序了。就用 exles 目錄下面的那個(gè)計(jì)算圓周率的程序。如果要多機(jī)并行計(jì)算的話,就需要在所有機(jī)器上的相同位置放置要運(yùn)行的程序,情況就是在所有機(jī)器的
33、C 盤下建了一個(gè) mpiexe 的目錄,并把 cpi.exe 拷到所有機(jī)器的這個(gè)目錄下。然后,在其中的某臺(tái)機(jī)器上進(jìn)入控制臺(tái)(運(yùn)行 MPI 程序其實(shí)也可以用開始菜單的 MPICH2 下的 wmpiexec.exe,這是個(gè) gui 程序,但是我覺得用的不爽,不如直接在控制臺(tái)下敲命令來得靈活 ),敲下命令 mpiexec -hosts 2 42 3c:mpiexecpi.exe。mpiexec 是安裝目錄下 bin 目錄里的一個(gè)程序,在本文的例子中就是C:Program FilesMPICH2bpiexec.exe,因?yàn)閯偛耪f了,我把這個(gè)地址加入到 PATH 里了,所以可以在任何地方直接執(zhí)行,它是用
34、來啟動(dòng) MPI 程序的,-hosts 參數(shù)說明是啟動(dòng)多臺(tái)機(jī)器并行運(yùn)算,后面跟著的 2 就是說要在兩臺(tái)機(jī)器上執(zhí)行程序,再后面的就是那兩臺(tái)機(jī)器的 ip地址,其中第一個(gè)就是我啟動(dòng)程序的機(jī)器,當(dāng)然,這個(gè)地方也可以寫機(jī)器名,只要它的機(jī)器名能被正常的就可以,最后面的就是要運(yùn)行的程序,也就是剛才提到的所有機(jī)器都要在相同位置放置的那個(gè) MPI 程序。如果只是在本機(jī)運(yùn)行,則命令為 mpiexec n 2 cpi.exe,-n表示是在本地運(yùn)行,后面的 2 表示啟動(dòng)的進(jìn)程數(shù)。程序運(yùn)行后就會(huì)提示讓你輸入一個(gè)數(shù)字 ervals,這個(gè)數(shù)字影響計(jì)算的精度,值越大精度越高,當(dāng)然計(jì)算時(shí)間就越長了,然后程序會(huì)打印出計(jì)算的結(jié)果和花
35、費(fèi)的時(shí)間。比如,我使用單機(jī)單進(jìn)程運(yùn)行, ervals 設(shè)為 99999999,耗時(shí) 1.253849 秒,而用兩臺(tái)機(jī)器雙進(jìn)程則只有 0.628954 秒,明顯快很多,并行運(yùn)算還是很有效果的。不過,如果把ervals 改為 9999,單機(jī)運(yùn)行只用了 0.000279 秒,而兩臺(tái)機(jī)器卻花了 0.001548 秒,這是因?yàn)椴⑿羞\(yùn)算過程中,參與運(yùn)算的機(jī)器需要通過網(wǎng)絡(luò)傳遞一些消息,如果計(jì)算量不大的話,花在了這上面的時(shí)間影響會(huì)比較明顯,因而反不如單機(jī)版的來得快。到現(xiàn)在的 MPI 運(yùn)行環(huán)境就基本安裝好了,當(dāng)然,MPI 還有很多其他令參數(shù),只不過最常用估計(jì)也就這兩條了,其他的用得著的時(shí)候就去查上面提到的文檔,
36、里面有比較詳細(xì)的介紹。另外,如果按照以上的介紹進(jìn)行安裝配置,在運(yùn)行多機(jī)并行 MPI 程序的時(shí)候卻出現(xiàn)連接錯(cuò)誤的話,八成是因?yàn)榫W(wǎng)絡(luò),看看你的是不是開著,打開相應(yīng)的端口,或者干脆關(guān)掉就好了。Linux 下的安裝配置和單機(jī)運(yùn)行Linux 下的操作要相對(duì)來說麻煩一點(diǎn),這個(gè)麻煩從安裝開始,呵呵。我用的系統(tǒng)是 CentOS4.4,裝在 VMware Worksion 里的,一共裝了兩個(gè)虛擬機(jī),環(huán)境基本上完全一樣。為運(yùn)行 MPI在兩臺(tái)虛擬機(jī)都創(chuàng)建了一個(gè)用戶 mpi,也是 mpi,home 路徑也都是/home/mpi,然后繼續(xù)都創(chuàng)建了一個(gè)目錄/home/mpi/mpich2 用來作 MPI 運(yùn)行環(huán)境的安裝路
37、徑, 一個(gè)/home/mpi/mpich2/src 來存放編譯用的源代碼。然后將源代碼包 mpich2-1.0.5.tar.gz到兩臺(tái)機(jī)器上,都解壓縮到/home/mpi/mpich2/src 中,然后到/home/mpi/mpich2/src 下,指定安裝路徑,./configure -prefix=/home/mpi/mpich2makemake install幾分鐘后安裝完畢。需要提一下的是,我曾經(jīng)試著用 root 用戶來安裝 MPICH2,但是安裝后好重啟系統(tǒng)就出了問題,所以建議還是另外建個(gè)用戶來裝吧(ubuntu 干脆就把 root 給禁了,不讓你直接用 root)。安裝后/home
38、/mpi/mpich2 下多出來一些目錄和文件,要比 windows 多,lib 是庫文件,include 是頭文件,bin 還是程序文件,所以還是要寫到環(huán)境變量里,可以用命令 export PATH/home/mpi/mpich2/bin:PATH,但我是用 root 用戶直接在/etc/profile 最后面加了這么一句exportPATH=/home/mpi/mpich2/bin:PATH,一勞永逸。MPI 應(yīng)用一個(gè)管理器來管理運(yùn)行 MPI 程序,這個(gè)管理器就是 mpd,但是在正式開始運(yùn)行 mpd 前還需要一個(gè)基于安全考慮的配置文件,.mpd.conf,這個(gè)文件是要放在運(yùn)行程序的用戶的
39、home 目錄下,本例子中就是/home/mpi/.mpd.conf,而且這個(gè)文件只能由這個(gè)用戶讀寫,創(chuàng)建文件令是,cd $HOMEtouch .mpd.confod 600 .mpd.conf然后在文件中寫入這么一行,secretword=*,*在參與計(jì)算的計(jì)算機(jī)上必需完全一致。如果是 root 用戶的話,這個(gè)文件應(yīng)該是/etc/mpf.conf。然后讓 mpd 在就可以啟動(dòng) mpd 管理器了,直接在控制臺(tái)下使用 mpd 命令,或者是 mpd &,運(yùn)行,若關(guān)閉啟動(dòng)的 mpd,只需令 mpdallexit 即可。在啟動(dòng) mpd 之后就可以運(yùn)行 MPI 應(yīng)用程序了,執(zhí)行命令與 windows 下
40、類似,如里的 cpi 程序可以這樣來作,仍然是測(cè)試一下 exlescd /mpich2/exlesmpiexec -n 1 ./ cpi參數(shù)含義同 windows 下的單機(jī)運(yùn)行命令。另外,啟動(dòng) mpd 后還可以用命令 mpdtrace 來察看當(dāng)前運(yùn)行的 mpd 情況。SSH 配置和多機(jī)并行MPI 的多機(jī)并行是用 mpdboot 來管理啟動(dòng)的,是由參與計(jì)算的其中一臺(tái)機(jī)器通過 mpdboot同時(shí)啟動(dòng)其他機(jī)器上的 mpd 管理器并運(yùn)行相應(yīng) MPI 程序的,所以,需要賦予運(yùn)行 mpdboot的機(jī)器執(zhí)行其他機(jī)器上程序的能力。MPICH2 支持通過 ssh 和 rsh 來做到這一點(diǎn),其中 ssh是默認(rèn)的,
41、而且其安全性也優(yōu)于 rsh,因此,我在項(xiàng)目中是用的 ssh。首先,需要修改所有機(jī)器上的/etc/hosts 文件,在里面添加上參與計(jì)算的機(jī)器名和ip 地址,比如本文中有兩臺(tái)機(jī)器參加的例子里,hosts 文件應(yīng)當(dāng)為: localhost.locallocalhost42 node03 node1這里的意思是說,主機(jī)名為 node0 的機(jī)器 ip 地址為 42,主機(jī)名為 node1 的機(jī)器ip 地址為 3。當(dāng)然,其實(shí)這一步也可以跳過,因?yàn)橐部梢栽诓僮鬟^程中直接使用 ip 地址,只不過那樣不太方便。另外就是,有些機(jī)器默認(rèn)情況下第一行可能包括本機(jī)的主機(jī)名,比如在 ip 為42 的node0 上,hos
42、ts 文件第一行是 localhost.locallocalhost node0這樣可能會(huì)使得 mpdboot 工作不正常,所以還是最好給成上面的那種形式。第二步是創(chuàng)建 ssh 密鑰,命令行下:#ssh-keygen -t rsa-t rsa 指的是密鑰類型,具體請(qǐng)察看 ssh 相關(guān)資料,這里不多說。這樣就在當(dāng)前用戶的 home目錄下生成了一個(gè).ssh 目錄,本文中的就是/home/mpi/.ssh。第三步,將/home/mpi/.ssh 下的id_rsa.pub 文件拷貝改名為 authorized_keys,即#c_rsa.pub authorized_keys第四步,在其他所有機(jī)器上進(jìn)行
43、以下操作。#ssh-keygen -t rsa生成.ssh 文件夾#scp node0 的 IP:/home/mpi/.ssh/* /.ssh拷貝 node0 上的.ssh 文件夾覆蓋本地的第五步,在所有機(jī)器上建立與自己和所有其他機(jī)器的信任連接。對(duì)每個(gè)節(jié)點(diǎn)執(zhí)行:#ssh node0#ssh node1根據(jù)提示鍵入yes 即可。然后就可以在不需要用戶名比如在 node0 上#ssh node1,的情況下通過 ssh 登陸其他機(jī)器了,就可以直接進(jìn)入 node1。接下來,在啟動(dòng) mpdboot 的機(jī)器上創(chuàng)建一個(gè)參與計(jì)算的 host 列表文件,如文件mpd.hosts,每行是一個(gè)主機(jī)名,創(chuàng)建過程如#c
44、d #toupd.hosts#vi mpd.hostsnod0node1現(xiàn)在,就可以啟動(dòng)運(yùn)算集群了#mpdboot -n 2 -f mpd.hosts-n 表示要啟動(dòng)的機(jī)器個(gè)數(shù),一般是不大于 mpd.hosts 文件中的機(jī)器數(shù),比如本文中的例子就是兩臺(tái)機(jī)器。這樣,列表中的機(jī)器就會(huì)啟動(dòng)其本機(jī)上的 mpd 管理器。然后,就可以開始運(yùn)行 MPI 程序,進(jìn)行運(yùn)算了,同 windows 下一樣,程序需要放在每臺(tái)機(jī)器上的相同位置(如果用 NFS 就只需在一臺(tái)機(jī)器上放置程序,其他機(jī)器作就行),比如都是程序/home/mpi/mpich2/exles/cpi,在運(yùn)行 mpdboot 的結(jié)點(diǎn)機(jī)器上:#mpiex
45、ec -n 2 /home/mpi/mpich2/exles/cpi-n 表示要啟動(dòng)的進(jìn)程個(gè)數(shù),一般是不大于 mpd.hosts 文件中的機(jī)器數(shù)(或者 cpu數(shù)?偶用的機(jī)器就是雙核的了,所以單機(jī)的時(shí)候雙進(jìn)程比單進(jìn)程效率好很多,但是三進(jìn)程就)。Mpd 在運(yùn)行過程中,可以通過 mpdtrace 顯示參與計(jì)算的機(jī)器名,mpdtrace l 則是顯示機(jī)器名以及其端口。wuli8 (站內(nèi)聯(lián)系 TA)配置 mpich2 運(yùn)行環(huán)境前段時(shí)間幫同學(xué)在 linux 下配了一個(gè)集群環(huán)境,參考了一些網(wǎng)上的文章,就把過程寫出來,做個(gè)參考吧。其實(shí)在的環(huán)境下 ssh 已經(jīng)是配置好的,但是我還是把網(wǎng)上看到的寫下來,而且這個(gè)配
46、置過程我試過,沒 創(chuàng)建 SSH 信任連接1、更改/etc/hosts 文件問題。vim /etc/hosts編輯為下面內(nèi)容: localhost.local 72 scc-m 72 node01 73 node02localhost #node01 的 IP #node01 的 IP#node02 的 IP2、在 node01 生成 SSH 秘鑰對(duì)ssh-keygen -t rsa產(chǎn)生.ssh 目錄ls -a查看確認(rèn)無誤3、生成 authorized_keys 文件cd .ssh進(jìn)入.ssh 目錄c_rsa.pub authorized_keys4、建立本身的信任連接cd .退出到/root
47、目錄下ssh node01按提示輸入 yes5、設(shè)置 node02ssh-keygen -t rsa生成.ssh 目錄scp 72:/root/.ssh/* /root/.ssh拷貝 node01 上的.ssh 文件夾到本地并覆蓋本地的該目錄scp 72:/etc/hosts /etc/hosts拷貝 node01 上的 hosts 文件覆蓋本地的 hostsssh node01提示處輸入 yes6、確認(rèn)兩臺(tái)機(jī)器的信任連接已建立在每個(gè)節(jié)點(diǎn)試驗(yàn)執(zhí)行:ssh node01 ssh node02如果有提示,在提示處輸入 yes 回車,只要確定無需輸入下面是安裝 mpich2 的過程二、安裝 MPIC
48、H2就能登陸即可1、到 MPICH源代碼包,解壓縮tar -zxvf mpich2-1.0.7.tar.gz2、創(chuàng)建安裝目錄mkdir /usr/MPICH-instsll3、進(jìn)入 mpich2 解壓到的目錄里cd mpich2-1.0.74、下面就是編譯安裝后還設(shè)置了安裝目錄的那三個(gè)基本步驟檢查配置、編譯、安裝,這次在./configure./configure -prefix=/usr/MPICH-install5、修改環(huán)境變量(編輯.bashrc 文件)vim .bashrc修改環(huán)境變量為(新增 PATH 一行):# .bashrc# User specific aliases and
49、functions PATH=$PATH:/usr/MPICH-install/bin戶的權(quán)限來安裝的,所以路徑不是這樣。alias rm=rm -i alias cp=cp -i alias mv=mv -i# Source global definitions if ; then. /etc/bashrcfi#這個(gè)地方用自己的安裝路徑,是以普通用6、測(cè)試環(huán)境變量設(shè)置,下面是我測(cè)試成功的屏顯:$ whi$ whi$ whi$ whipd picc piexecpirun7、修改/etc/mpd.conf 文件,內(nèi)容為 secretword=mywordvim /etc/mpd.conf# 自
50、己創(chuàng)建,并寫入 secretword=myword 保存,由于我們沒有 root 權(quán)限,所以我改在主目錄下建立.mpd.conf 文件并寫入內(nèi)容設(shè)置文件權(quán)限和修改時(shí)間戳od 600 /etc/mpd.conftouch /etc/mpd.conf# touch .mpd.conf,寫入之后這一步可以省略8、創(chuàng)建主機(jī)名稱集合文件/root/mpd.hosts#同樣在主目錄下創(chuàng)建該文件并寫入內(nèi)容vim mpd.hosts 文件內(nèi)容如下: node01node02三、測(cè)試1、本地測(cè)試啟動(dòng):mpd &啟器:mpdtrace退出:mpdallexit2、運(yùn)行集群系統(tǒng)mpdboot -n 2 -f mpd
51、.hosts參數(shù)-n 2 指定了要起動(dòng)的機(jī)器個(gè)數(shù),-f mpd.hosts 指定了通過 mpd.hosts 運(yùn)行mpdtracempdallexit3、測(cè)試運(yùn)行 MPICH 的程序mpdboot -n 2 -f mpd.hosts啟動(dòng)這兩臺(tái)機(jī)器mpiexec -n num /exle/o用 num 指定使用的進(jìn)程數(shù)mpdallexit四、查錯(cuò)1、通過 mpdcheck 獲得幫助信息mpdcheck -pc2、查錯(cuò)mpdcheck -l3、通過 mpd.hosts 文件查錯(cuò)mpdcheck -f mpd.hosts如果無錯(cuò)誤mpdcheck -f mpd.hosts -ssh4、對(duì)任意兩臺(tái)機(jī)器進(jìn)
52、行查錯(cuò)node01 上:mpdcheck -s返回主機(jī)名 host 和端口 portnode02 上:mpdcheck -c host port5、mpd 查錯(cuò)node01 上:mpd -e &返回使用的端口node02 上:mpd -h m1 -p echoed_port_m1 &wuli8 (站內(nèi)聯(lián)系 TA)較早版本的并行資料:簡單組建 linux 集群及并行編譯 vasp 過程現(xiàn)在主要是用做高性能計(jì)算,下面就是集群的組建過程。集群的硬件環(huán)境:做一個(gè)集群,節(jié)點(diǎn)機(jī)器的硬件最好相同,這樣計(jì)算的效率就會(huì)高很多,同時(shí)組建集群也相對(duì)容易。以下是機(jī)器的配置情況(全新,組裝)另外的是,的節(jié)點(diǎn)機(jī)沒有配置顯
53、示器,全部工作由服務(wù)器完成。連接就是通過交換機(jī)連接,和一般局域網(wǎng)連接相同。服務(wù)器:P4 3.2, 內(nèi)存 2 G ,硬盤:160G ,顯示器 ,網(wǎng)卡:2 個(gè)千兆網(wǎng)卡 (money:8千多)節(jié)點(diǎn)(10 臺(tái)): P4 3.2, 內(nèi)存:2 G, 硬盤:80G , 網(wǎng)卡:千兆網(wǎng)卡 (5 千多每臺(tái))24 口千兆交換機(jī)(4 千多)集群環(huán)境:建一個(gè)簡單的集群,其實(shí)并不難,主要配置 nis,nfs,rsh,mpi 就好了。推薦大家看一本書微機(jī)集群組建、優(yōu)化和管理車靜光著,機(jī)械工業(yè)。集群,采用 suse9.3,操作系統(tǒng)其實(shí)也很重要,這次試了很多操作系統(tǒng),redhat9,rhas4 無法識(shí)別網(wǎng)卡,rocks 無法安
54、裝,如果硬件沒問題,建議大家可以試下 rocks cluster 這個(gè)集群系統(tǒng),rocks集操作系統(tǒng)和集群于一體,安裝完成并行環(huán)境就已經(jīng)建立,而且還配備了 pbs 管理,非常簡單,容易上手,只是硬件不太兼容,本來是想裝 rocks 的,無奈,只有自己動(dòng)手了。 Suse 配置 nis,nfs 非常簡單,因?yàn)?suse 強(qiáng)大的 yast,就像 window 一樣方便,只要鼠標(biāo)輕點(diǎn)幾下就 ok。1Linux 系統(tǒng)的安裝,suse 安裝也非常簡單,在此不想詳細(xì)講太多,主要是在分區(qū)的時(shí)候要注意,最要自己手動(dòng)分區(qū),對(duì)于服務(wù)器來說,最好能分一個(gè)獨(dú)立的分區(qū)/home,因?yàn)楣?jié)點(diǎn)機(jī)器要通過 nfs 共享服務(wù)器的/
55、home。注意的是一下幾個(gè)nis(ypbind),rsh(rshserver)。 2基本的網(wǎng)絡(luò)配置(通過 yast 的網(wǎng)卡配置)包一定要安裝 nfsutils),服務(wù)器的:53hostname:node0:node0.cluster節(jié)點(diǎn)機(jī)器:192.168.10掩碼:服務(wù)器的配置Nfs 設(shè)置hostname:node1node10:node*.cluserNetWork File System)是一種使用比較多的網(wǎng)絡(luò)文件系統(tǒng),它以它的安裝容易,使用方便得到很多 Linux者的使用。在使用 NFS 時(shí),把需要共享的分區(qū)或者文件按照一定的規(guī)范共享出去,想使用這個(gè)資源的機(jī)器使用 mount 命令把共
56、享的資源加載到自己的系統(tǒng)上,然后就可以像使用自己的本地文件系樣方便。進(jìn)入圖形 yastnetworknfs server,之后開始配置, 點(diǎn)擊 add directory:之后設(shè)置兩個(gè)共享目錄, /home,/usr/local/,然后加入共享這兩個(gè)目錄的主機(jī)通配符 /rw,root_squash,。其實(shí)配置 fs 就是修改/etc/exports 文件,你也可以直接修改成/home/ /(rw,root_squash,sync)/usr/local /(rw,root_squash,sync) Ok,NFS 就這樣配置好了。3.2 NIS 的配置NIS(Network Information
57、 Service)是實(shí)現(xiàn)網(wǎng)絡(luò)上各 Linux 機(jī)器之間的重要數(shù)據(jù)。這些數(shù)據(jù)包括用戶帳號(hào),組文件,主機(jī)文件,等等。在集群中要做到單一的鏡象就需要 NIS 的一些服務(wù)。比如不需要在每個(gè)節(jié)點(diǎn)上建立各自的用戶,而是在 master 上建立一個(gè)用戶以后,就同時(shí)在其它的節(jié)點(diǎn)上能夠到這個(gè)用戶。下面是配置過程:Yastnetworknis servercreate nis master server 之后填入 nisname,就是,我們填 node0.Cluster,之后一些信息一般選默認(rèn)就可以了,之后要配置 hosts: netmask:55 network:netmask: network:ok,之后完成
58、,進(jìn)入/var/yp 目錄,執(zhí)行 make 就最后完成 nis 的配置。注意的是如果你新建用戶了,要注意執(zhí)行 make 命令更新 nis 信息。最后啟動(dòng)網(wǎng)絡(luò)服務(wù) yastnetwork-start service 進(jìn)入設(shè)置,開啟 s3.3 rsh 的配置,login 兩項(xiàng)服務(wù)。注意修改這兩個(gè)文件/etc/hosts /etc/hosts.equiv 所建立用戶的.rhosts,這個(gè)文件和/hosts.equiv文件內(nèi)容設(shè)置相同。Hosts 的文件信息,最后修改成: localhost53 node0.cluster node0 node1.cluster node10 node10.clust
59、er node10 Hosts.equiv:Node0Node1Node10把所有節(jié)點(diǎn)的信息輸入到這兩個(gè)文件,等節(jié)點(diǎn)機(jī)器的配置好后,你就可以用命令 rlogin node*,登陸節(jié)點(diǎn)機(jī)器,這樣就可以對(duì)節(jié)點(diǎn)機(jī)器進(jìn)行操作了。節(jié)點(diǎn)機(jī)器的配置配置 nis,nfs 的情況基本和服務(wù)器類似,只是進(jìn)入 yast 的時(shí)候選擇的是 nis 客戶端,和 nfs客戶端即可,這里不再詳細(xì)說明。之后啟動(dòng) rsh 服務(wù),啟動(dòng)過程,編輯/etc/xinetd.d/rsh 將其中內(nèi)容“disableyes”改成“disableno”,重新 restart xinetd,激活 rsh #chkconfig level 345
60、rsh on#/etc/rc.d/xinetd restart,這樣就配置好 rsh 了,Lammpi 的編譯安裝使用。到 lammpi要自己編譯 tar.gz 格式的用“tar zxvf lam-7.1.1.tar.gz”解壓的源代碼,注意不要rpm 格式的,(3) 進(jìn)入該目錄配置編譯信息(后面編譯 vasp 中的 makefile 有)./configureprefix =/usr/local/lam-7.1.1 with CFLAGS=O with fc=ifort with f77flags=O without romio幾點(diǎn)說明,前面是配置 lammpi 的安裝路徑/usr/loca
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025農(nóng)產(chǎn)品買賣合同模板
- 水閘消防安全知識(shí)培訓(xùn)課件
- 水粉畫草叢中的鴨子課件
- 鄉(xiāng)鎮(zhèn)水源保護(hù)方案
- 小升初語文古詩鑒賞知識(shí)點(diǎn)銜接-《曲》練習(xí)(含答案)
- 橋梁檢測(cè)設(shè)備選型與使用方案
- 學(xué)生宿舍節(jié)能設(shè)計(jì)與技術(shù)應(yīng)用方案
- 水電驗(yàn)收課件第五元素
- 水電站業(yè)務(wù)知識(shí)培訓(xùn)課件簡報(bào)
- 二零二五年度新能源設(shè)備采購及運(yùn)營合作協(xié)議
- 陜西省特種設(shè)備隱患排查清單(2025年)
- 快遞行業(yè)交通安全培訓(xùn)
- 貨款轉(zhuǎn)讓協(xié)議書
- 燃?xì)夤炯託庹静僮饕?guī)程及安全要求
- 裝修砸墻安全協(xié)議書
- DB4407∕T 70-2021 地理標(biāo)志產(chǎn)品 新會(huì)陳皮
- 送水工勞務(wù)合同協(xié)議
- 讀博協(xié)議和合同
- 2025CACA子宮頸癌診療指南解讀
- 2025年第34屆全國中學(xué)生物理競賽預(yù)賽試卷及答案(完整版)
- 骨科護(hù)理10分鐘小講課
評(píng)論
0/150
提交評(píng)論