24小时热门版块排行榜    

查看: 3895  |  回复: 18
【奖励】 本帖被评价8次,作者liangab_234620增加金币 7.5
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

liangab_234620

木虫 (小有名气)


[资源] 【原创】并行编译SIESTA

最近闲的无聊,在曙光集群上并行编译了SIESTA,把其中的过程和教训跟大家分享一下.
1.获得SIESTA
SIESTA对科研人员是可以免费使用的,因此可以在http://www.icmab.es/siesta/主页上注册,大概两个星期后管理员会通过审核,通知您可以使用SIESTA.然后就可以从上面下载到源文件,赝势文件等。
2.编译器安装
我这里使用的FORTRAN编译器是PGI7.0,并行使用MPI-1.2.7.
PGI的安装很友好,因此不做介绍。
接着使用PGI编译MPICH,先进行配置生成MAKEFILE文件具体是:
./configure -prefix=/your/mpich/directory -fc="pgf77 -Mx,119,0x200000" \
-f90="pgf90 -Mx,119,0x200000" \
-without-romio --without-mpe -opt=-O -rsh=ssh
然后进入你的安装目录,使用make完成安装,最好是测试下例子确认安装成功。
安装完之后将MPICH的BIN加入环境变量中。
3.安装数学库
并行编译SIESTA需要以下4个数学库BLAS,LAPACK,BLACS以及SCALAPACK,这些都可以从http://www.netlib.org/免费获得。对于BLAS和LAPACK可以使用优化过的MKL(INTEL处理器),ACML(AMD处理器),同样后者也可以从网上免费获得。SIESTA也能使用NETCDF数学库(这里没有使用)。
在这里我使用的ACML,BLACS以及SCALAPACK数学库,ACML的安装很友好,不过要下载对应好编译器的版本。这里主要介绍下BLACS和SCALAPCK的编译。
3.1BLACS的安装
http://www.netlib.org/获得mpiblacs.gz,使用tar -zxvf mpiblacs.gz解压缩后进入BLACS目录,从BMAKES目录下拷贝出你对应系统系统的Bmake.X-X文件到上一目录的Bmake.inc对于我的系统使用的是
cp Bmake.MPI-LINUX ../Bmake.inc
然后修改Bmake.inc文件中相关内容
先修改安装目录 BTOPdir =/your/BLACS/directory
接着修改MPI目录MPIdir = /your/MPICH/directory
最重要的是将   INTFACE = -DAdd_ 这里设置成-DAdd_
然后设置   TRANSCOMM = -DUseMpich
最后将系统默认编译器改成PGI编译
   F77            = pgf77
   F77NO_OPTFLAGS =
   F77FLAGS       = $(F77NO_OPTFLAGS) -O
   F77LOADER      = $(F77)
   F77LOADFLAGS   =
   CC             = pgcc
   CCFLAGS        = -O4
   CCLOADER       = $(CC)
   CCLOADFLAGS    =
完成修改之后使用make mpi进行安装,安装成功后就会在LIB目录下生成三个BLACS库文件。
(这里注意的是如果不使用-DAdd_以及PGI编译器,系统会在编译到最后一部(生成可执行文件是对数学库文件报错))。
3.2SCALAPACK安装
装好BLACS后就可以进行SCALAPACK的安装了
如同安装BLACS,下载SCALAPACK后解压缩,从子目录下拷贝出相应系统的SLmake.inc然后对里面制定MPICH,BLACS,BLAS,LAPACK数学库的相应位置的地方进行修改,指定到你所安装的MPICH,BLACS,BLAS,LAPACK数学库位置,如果BLAS,LAPACK使用的是MKL或者ACML的则指定相应文件夹下的相应文件,如我的是制定到/libacml.a。
同样最重要是的设置CDEFS         = -DAdd_ -DNO_IEEE $(USEMPI)
(这里主要要指定好BLACS库函数的位置,对于BLAS和LAPACK影响不大)
编译使用MPI进行
F77           = mpif77
CC            = mpicc
NOOPT         =
F77FLAGS      =  -O3 $(NOOPT)
CCFLAGS       = -O4
SRCFLAG       =
F77LOADER     = $(F77)
CCLOADER      = $(CC)
F77LOADFLAGS  =
CCLOADFLAGS   =
4.编译SIESTA
SIESTA编译同样先解压缩,然后进入Src目录,将/Src/Sys目录下对应的X-X.make拷贝到Src,并更改名字为arch.make,然后根据你具体的数学库地址和编译器名字修改arch.make.
由于时间关系这里我直接给出我自己的arch.make.给大家做个参考
更改完成后,make即可生成SIESTA文件,然后可以去TESTS目录下进行测试。

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)   $<
#
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxdai

金虫 (正式写手)


★ ★
zdhlover(金币+2,VIP+0):谢谢,欢迎常来 6-11 19:16
引用回帖:
Originally posted by xh512 at 2009-6-12 09:02:
赝势 atom生成器 ,的编译顺便介绍下就更好啦

atom的编译非常简单,
你把makefile文件 里的编译器改为pgf90就可以。
你用 它默认的 编译器编译要改动一些东西,
你直接用pgf90编译,一步到位。
6楼2009-06-12 09:35:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 19 个回答

zdhlover

荣誉版主 (职业作家)


★★★★★ 五星级,优秀推荐

谢谢楼主共享原创,欢迎常来
4楼2009-06-12 08:52:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xh512

金虫 (正式写手)


★★★ 三星级,支持鼓励

赝势 atom生成器 ,的编译顺便介绍下就更好啦
5楼2009-06-12 09:02:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liangab_234620

木虫 (小有名气)



zdhlover(金币+1,VIP+0):谢谢,欢迎常来 6-11 19:16
楼上解释了我就不加解释了,不过赝势我倾向于用SIESTA网上自带的赝势库,感觉很全几乎所有的元素都有,GGA和LDA都有,如果有要的我可以把整理后赝势库的发出来。
7楼2009-06-12 11:46:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 i7NFEVbjQMM5 2026-08-16 5/250 2026-08-17 16:38 by CBFiACZS7HAK
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 EWi2p09MOOv8 2026-08-16 3/150 2026-08-17 16:35 by CBFiACZS7HAK
[博后之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 6GojgJvkDudM 2026-08-16 7/350 2026-08-17 16:14 by CBFiACZS7HAK
[基金申请] 时间戳变了,能看出什么问题? +4 基诺咪客 2026-08-17 4/200 2026-08-17 16:10 by Vivilian
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 6GojgJvkDudM 2026-08-16 4/200 2026-08-17 13:49 by EYK67XJMj64E
[基金申请] 今天系统多次维护,明天很可能放榜! +8 zju2000 2026-08-16 9/450 2026-08-17 12:20 by lmz0216
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 i7NFEVbjQMM5 2026-08-16 4/200 2026-08-17 12:10 by 4GBAYCdVQoK3
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 6GojgJvkDudM 2026-08-16 3/150 2026-08-17 09:49 by xLVPIRuSvCUe
[论文投稿] 岩土工程学报什么时候才能终审完呐 25+3 yeager111 2026-08-10 4/200 2026-08-16 20:42 by tfang
[基金申请] 时间戳又变了8-15 +13 archvillain 2026-08-15 25/1250 2026-08-16 20:13 by zhaosm1982
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 6/300 2026-08-16 20:07 by 奶牛小黑
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +3 Tide man 2026-08-14 3/150 2026-08-16 17:47 by jurkat.1640
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
信息提示
请填处理意见