| 19 | 1/1 | 返回列表 |
| 查看: 3503 | 回復(fù): 18 | ||||
| 【獎(jiǎng)勵(lì)】 本帖被評(píng)價(jià)8次,作者liangab_234620增加金幣 7.5 個(gè) | ||||
| 當(dāng)前主題已經(jīng)存檔。 | ||||
[資源]
【原創(chuàng)】并行編譯SIESTA
|
||||
|
最近閑的無聊,在曙光集群上并行編譯了SIESTA,把其中的過程和教訓(xùn)跟大家分享一下. 1.獲得SIESTA SIESTA對(duì)科研人員是可以免費(fèi)使用的,因此可以在http://www.icmab.es/siesta/主頁上注冊,大概兩個(gè)星期后管理員會(huì)通過審核,通知您可以使用SIESTA.然后就可以從上面下載到源文件,贗勢文件等。 2.編譯器安裝 我這里使用的FORTRAN編譯器是PGI7.0,并行使用MPI-1.2.7. PGI的安裝很友好,因此不做介紹。 接著使用PGI編譯MPICH,先進(jìn)行配置生成MAKEFILE文件具體是: ./configure -prefix=/your/mpich/directory -fc="pgf77 -Mx,119,0x200000" \ -f90="pgf90 -Mx,119,0x200000" \ -without-romio --without-mpe -opt=-O -rsh=ssh 然后進(jìn)入你的安裝目錄,使用make完成安裝,最好是測試下例子確認(rèn)安裝成功。 安裝完之后將MPICH的BIN加入環(huán)境變量中。 3.安裝數(shù)學(xué)庫 并行編譯SIESTA需要以下4個(gè)數(shù)學(xué)庫BLAS,LAPACK,BLACS以及SCALAPACK,這些都可以從http://www.netlib.org/免費(fèi)獲得。對(duì)于BLAS和LAPACK可以使用優(yōu)化過的MKL(INTEL處理器),ACML(AMD處理器),同樣后者也可以從網(wǎng)上免費(fèi)獲得。SIESTA也能使用NETCDF數(shù)學(xué)庫(這里沒有使用)。 在這里我使用的ACML,BLACS以及SCALAPACK數(shù)學(xué)庫,ACML的安裝很友好,不過要下載對(duì)應(yīng)好編譯器的版本。這里主要介紹下BLACS和SCALAPCK的編譯。 3.1BLACS的安裝 從http://www.netlib.org/獲得mpiblacs.gz,使用tar -zxvf mpiblacs.gz解壓縮后進(jìn)入BLACS目錄,從BMAKES目錄下拷貝出你對(duì)應(yīng)系統(tǒng)系統(tǒng)的Bmake.X-X文件到上一目錄的Bmake.inc對(duì)于我的系統(tǒng)使用的是 cp Bmake.MPI-LINUX ../Bmake.inc 然后修改Bmake.inc文件中相關(guān)內(nèi)容 先修改安裝目錄 BTOPdir =/your/BLACS/directory 接著修改MPI目錄MPIdir = /your/MPICH/directory 最重要的是將 INTFACE = -DAdd_ 這里設(shè)置成-DAdd_ 然后設(shè)置 TRANSCOMM = -DUseMpich 最后將系統(tǒng)默認(rèn)編譯器改成PGI編譯 F77 = pgf77 F77NO_OPTFLAGS = F77FLAGS = $(F77NO_OPTFLAGS) -O F77LOADER = $(F77) F77LOADFLAGS = CC = pgcc CCFLAGS = -O4 CCLOADER = $(CC) CCLOADFLAGS = 完成修改之后使用make mpi進(jìn)行安裝,安裝成功后就會(huì)在LIB目錄下生成三個(gè)BLACS庫文件。 (這里注意的是如果不使用-DAdd_以及PGI編譯器,系統(tǒng)會(huì)在編譯到最后一部(生成可執(zhí)行文件是對(duì)數(shù)學(xué)庫文件報(bào)錯(cuò)))。 3.2SCALAPACK安裝 裝好BLACS后就可以進(jìn)行SCALAPACK的安裝了 如同安裝BLACS,下載SCALAPACK后解壓縮,從子目錄下拷貝出相應(yīng)系統(tǒng)的SLmake.inc然后對(duì)里面制定MPICH,BLACS,BLAS,LAPACK數(shù)學(xué)庫的相應(yīng)位置的地方進(jìn)行修改,指定到你所安裝的MPICH,BLACS,BLAS,LAPACK數(shù)學(xué)庫位置,如果BLAS,LAPACK使用的是MKL或者ACML的則指定相應(yīng)文件夾下的相應(yīng)文件,如我的是制定到/libacml.a。 同樣最重要是的設(shè)置CDEFS = -DAdd_ -DNO_IEEE $(USEMPI) (這里主要要指定好BLACS庫函數(shù)的位置,對(duì)于BLAS和LAPACK影響不大) 編譯使用MPI進(jìn)行 F77 = mpif77 CC = mpicc NOOPT = F77FLAGS = -O3 $(NOOPT) CCFLAGS = -O4 SRCFLAG = F77LOADER = $(F77) CCLOADER = $(CC) F77LOADFLAGS = CCLOADFLAGS = 4.編譯SIESTA SIESTA編譯同樣先解壓縮,然后進(jìn)入Src目錄,將/Src/Sys目錄下對(duì)應(yīng)的X-X.make拷貝到Src,并更改名字為arch.make,然后根據(jù)你具體的數(shù)學(xué)庫地址和編譯器名字修改arch.make. 由于時(shí)間關(guān)系這里我直接給出我自己的arch.make.給大家做個(gè)參考 更改完成后,make即可生成SIESTA文件,然后可以去TESTS目錄下進(jìn)行測試。 PS: arch.make文件 # # This file is part of the SIESTA package. # # Copyright (c) Fundacion General Universidad Autonoma de Madrid: # E.Artacho, J.Gale, A.Garcia, J.Junquera, P.Ordejon, D.Sanchez-Portal # and J.M.Soler, 1996-2006. # # Use of this software constitutes agreement with the full conditions # given in the SIESTA license, as signed by all legitimate users. # SIESTA_ARCH=pgf90-mpich # FC=mpif90 FC_ASIS=$(FC) # FFLAGS= -O3 -fastsse -Mx,119,0x200000 -tp k8-64e FFLAGS_DEBUG= -g -O0 RANLIB=echo COMP_LIBS=dc_lapack.a # NETCDF_LIBS= # /public/home/liang/libs/netcdf-4.0.1/lib/libnetcdf.a NETCDF_INTERFACE= # libnetcdf_f90.a DEFS_CDF= # -DCDF # MPI_INTERFACE=libmpi_f90.a MPI_INCLUDE=/your/MPICH/directory/include DEFS_MPI=-DMPI -DFC_HAVE_FLUSH -DFC_HAVE_ABORT # # There are (were?) some problems with command-line processing compatibility # that forced the extraction of "pgi.aux" and "pgiarg" as independent # libraries (details unfortunately lost) # BLAS_LIBS=/your/BLAS/directory/libblas.a LAPACK_LIBS=/your/LAPACK/diretory/liblapack.a BLACS_LIBS=/your/BLACS/LIB/blacsF77init_MPI-LINUX-0.a /your/BLACS/LIB/blacs_MPI-LINUX-0.a /your/BLACS/LIB/blacsF77init_MPI-LINUX-0.a SCALAPACK_LIBS=/your/scalapack-1.8.0/libscalapack.a LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(NETCDF_LIBS) $(PGI_LIBS) $(PGI_LIBS) SYS=cpu_time DEFS= $(DEFS_CDF) $(DEFS_MPI) # # # Important (at least for V5.0-1 of the pgf90 compiler...) # Compile atom.f and electrostatic.f without optimization. # atom.o: $(FC) -c $(FFLAGS_DEBUG) atom.f # electrostatic.o: $(FC) -c $(FFLAGS_DEBUG) electrostatic.f # .F.o: $(FC) -c $(FFLAGS) $(INCFLAGS) $(DEFS) $< .f.o: $(FC) -c $(FFLAGS) $(INCFLAGS) $< .F90.o: $(FC) -c $(FFLAGS) $(INCFLAGS) $(DEFS) $< .f90.o: $(FC) -c $(FFLAGS) $(INCFLAGS) $< # |
siesta問題 | ATK和電子輸運(yùn) |
榮譽(yù)版主 (職業(yè)作家)
版主 (著名寫手)
榮譽(yù)版主 (知名作家)
|
首先十分感謝lz發(fā)了這么詳細(xì)的安裝步驟。 由于我剛剛接觸這個(gè)軟件所以安裝的時(shí)候又很多地方不懂。還請(qǐng)樓主指點(diǎn)一下: MPICH包,我用的是MPICH 2.0的。編譯器,我用的是ifortran9.0。數(shù)學(xué)庫我也按 照你的步驟建立好。在裝siesta時(shí)。make之后出現(xiàn)一個(gè)錯(cuò)誤: cannot find -1mpich。 不知道是什么錯(cuò)誤? 還有不理解的是: -fc="pgf77 -Mx,119,0x200000" \ -f90="pgf90 -Mx,119,0x200000" \ 這里的 pgf77 和 pgf90 代表的是什么?對(duì)于ifortran來講,對(duì)應(yīng)的是什么? -Mx, 119, 0x20000" 又指的是什么? 最后,我想知道 這里的意思是不是把FC=mpif90 改為FC=pgf90 希望樓主能夠解答一下。謝謝。 [ Last edited by caqhero on 2009-8-9 at 16:50 ] |
|
你這對(duì)編譯一點(diǎn)都不懂啊。 用ifort可以參考一下我的 http://qingyan1971.spaces.live.c ... 75FC440F6!499.entry 不過我這樣編譯出來的,編譯過程非常順利,但一并行就出錯(cuò),說是divided by zero。 [ Last edited by fuzp on 2009-8-27 at 21:55 ] |
鐵桿木蟲 (著名寫手)


| 19 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 07化學(xué)280分求調(diào)劑 +4 | 722865 2026-03-23 | 4/200 |
|
|---|---|---|---|---|
|
[考研] 一志愿北京化工大學(xué) 070300 學(xué)碩 336分 求調(diào)劑 +7 | vv迷 2026-03-22 | 7/350 |
|
|
[考研] 081700 調(diào)劑 267分 +7 | 迷人的哈哈 2026-03-23 | 7/350 |
|
|
[考研] 生物學(xué)學(xué)碩求調(diào)劑 +4 | 小羊睡著了? 2026-03-23 | 4/200 |
|
|
[考研] 生物學(xué)一志愿985,分?jǐn)?shù)349求調(diào)劑 +6 | zxts12 2026-03-21 | 9/450 |
|
|
[考研] 328求調(diào)劑,英語六級(jí)551,有科研經(jīng)歷 +7 | 生物工程調(diào)劑 2026-03-17 | 12/600 |
|
|
[論文投稿] 急發(fā)核心期刊論文 +3 | 賢達(dá)問津 2026-03-23 | 5/250 |
|
|
[考研] 291 求調(diào)劑 +4 | 化工2026屆畢業(yè)?/a> 2026-03-21 | 5/250 |
|
|
[考研] 293求調(diào)劑 +3 | 濤濤Wjt 2026-03-22 | 5/250 |
|
|
[考研] 324求調(diào)劑 +6 | lucky呀呀呀鴨 2026-03-20 | 6/300 |
|
|
[考研] 298求調(diào)劑一志愿211 +3 | 上岸6666@ 2026-03-20 | 3/150 |
|
|
[考研] 305分求調(diào)劑(食品工程) +4 | Sxy112 2026-03-21 | 6/300 |
|
|
[考研] 生物學(xué)調(diào)劑 +5 | Surekei 2026-03-21 | 5/250 |
|
|
[考研] 求調(diào)劑 +5 | Zhangbod 2026-03-21 | 7/350 |
|
|
[考研] 286分人工智能專業(yè)請(qǐng)求調(diào)劑愿意跨考! +4 | lemonzzn 2026-03-17 | 8/400 |
|
|
[考研] 一志愿 西北大學(xué) ,070300化學(xué)學(xué)碩,總分287,雙非一本,求調(diào)劑。 +3 | 晨昏線與星海 2026-03-18 | 3/150 |
|
|
[考研] 261求B區(qū)調(diào)劑,科研經(jīng)歷豐富 +3 | 牛奶很忙 2026-03-20 | 4/200 |
|
|
[考研] 0703化學(xué)調(diào)劑 +5 | pupcoco 2026-03-17 | 8/400 |
|
|
[考研] 材料工程專碩調(diào)劑 +5 | 204818@lcx 2026-03-17 | 6/300 |
|
|
[考研] 收復(fù)試調(diào)劑生 +4 | 雨后秋荷 2026-03-18 | 4/200 |
|