24小时热门版块排行榜    

查看: 2095  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

mengfc

金虫 (正式写手)

[求助] siesta-3.1并行编译出错。

根据版主贺仪在 http://muchong.com/bbs/viewthread.php?tid=3010970 中第一种方法进行编译。
步骤如下。

1.将siesta-3.0-rc2.tgz文件拷贝到一个临时的目录里面(如tem)

2.解压文件:$ tar -zxvf
siesta-3.0-rc2.tgz
3.进入要生成执行文件的目录,可以自己随便建立。这样可以利用不同参数编译
不同版本的siesta 放在不同的目录里。这是与siesta-2.0.2 相比,采用的一种新的
执行文件生成机制,例如到Obj 目录生成执行文件:$ cd siesta-3.0-rc2/Obj/
4. 如果Obj 目录和Src 目录是平级的,运行:$ sh ../Src/obj_setup.sh
总之要在你要生成可执行文件的目录下用sh 运行Src/obj_setup.sh。
5. 在执行文件生成目录里运行Src/configure,即: $ ../Src/configure
6.进入/Src/MPI
7.修改Makefile
vi Makefile  

ARCH_MAKE_DEFAULT=../arch.make
修改为绝对路径
ARCH_MAKE_DEFAULT=/home/zhou/soft/siesta/siesta-3.0-rc2/Obj/arch.make
8.再make
9.再切换到Obj目录
10.修改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- .
#
# Use of this software constitutes agreement with the full conditions
# given in the SIESTA license, as signed by all legitimate users.
#
.SUFFIXES:
.SUFFIXES: .f .F .o .a .f90 .F90

SIESTA_ARCH=x86_64-unknown-linux-gnu--Intel

FPP=
FPP_OUTPUT=
FC=/public/openmpi-141-icc/bin/mpif90
RANLIB=ranlib

SYS=nag

SP_KIND=4
DP_KIND=8
KINDS=$(SP_KIND) $(DP_KIND)

FFLAGS= -O2 -i-static
FFLAGS_DEBUG= -g
LDFLAGS=-Vaxlib
FPPFLAGS= -DMPI
# -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DMPI

ARFLAGS_EXTRA=

FCFLAGS_fixed_f=
FCFLAGS_free_f90=
FPPFLAGS_fixed_F=
FPPFLAGS_free_F90=

BLAS_LIBS=-L/public/intel/mkl/lib/em64t -lmkl_solver_lp64 -lmkl_intel_lp64 -lguide
LAPACK_LIBS=-L/public/intel/mkl/lib/em64t -lmkl_sequential -lmkl_core
BLACS_LIBS=-L/public/intel/mkl/lib/em64t -lmkl_blacs_openmpi_lp64
SCALAPACK_LIBS=-L/public/intel/mkl/lib/em64t -lmkl_scalapack_lp64

COMP_LIBS=

NETCDF_LIBS=
NETCDF_INTERFACE=

LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(NETCDF_LIBS)

#SIESTA needs an F90 interface to MPI
#This will give you SIESTA's own implementation
#If your compiler vendor offers an alternative, you may change
#to it here.
MPI_INTERFACE=/home/zhou/soft/siesta/siesta-3.0-rc2/Src/MPI/libmpi_f90.a
MPI_INCLUDE=/public/openmpi-141-icc/include

#Dependency rules are created by autoconf according to whether
#discrete preprocessing is necessary or not.
.F.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F)  $<
.F90.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $<
.f.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f)  $<
.f90.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90)  $<
11,make

在最后一步make的时候出现如下错误。
ifort: error #10236: File not found:  'libmpi_f90.a'
make: *** [siesta] Error 1

这个libmpi_f90.a在第8步make的时候生成了。我就把它放在了/Obj目录下(我不知道这样做对不对,应该放在哪里?),然后重新编译,又出现如下错误。

/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:246: undefined reference to `blacs_get_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:247: undefined reference to `blacs_gridinit_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:255: undefined reference to `blacs_get_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:256: undefined reference to `blacs_gridinit_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:258: undefined reference to `blacs_gridinfo_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:264: undefined reference to `descinit_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:273: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:274: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:277: undefined reference to `descinit_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:333: undefined reference to `blacs_gridinfo_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:334: undefined reference to `indxg2p_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:335: undefined reference to `indxg2p_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:337: undefined reference to `blacs_gridinfo_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:338: undefined reference to `indxg2p_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:339: undefined reference to `indxg2p_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:343: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:344: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:345: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:346: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:359: undefined reference to `pjlaenv_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:361: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:370: undefined reference to `iceil_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:412: undefined reference to `pzgemr2d_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:413: undefined reference to `pzgemr2d_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:434: undefined reference to `pzhegvx_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:438: undefined reference to `pzgemr2d_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:440: undefined reference to `pzhegvx_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:491: undefined reference to `pzpotrf_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:493: undefined reference to `pzpotrf_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:511: undefined reference to `pzhengst_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:514: undefined reference to `pzhengst_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:535: undefined reference to `pzhemm_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:537: undefined reference to `pzgemm_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:540: undefined reference to `pzhemm_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:542: undefined reference to `pzgemm_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:566: undefined reference to `pzheevd_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:570: undefined reference to `pzheevd_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:576: undefined reference to `pzheevx_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:581: undefined reference to `pzheevx_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:636: undefined reference to `pzgemm_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:640: undefined reference to `pzgemm_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:674: undefined reference to `pztrsm_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:676: undefined reference to `pzgemr2d_'
/home/mengfc/Siesta/siesta-3.1/Src/cdiag.F:678: undefined reference to `pztrsm_'
rdiag.o: In function `rdiag':
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:228: undefined reference to `blacs_get_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:229: undefined reference to `blacs_gridinit_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:237: undefined reference to `blacs_get_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:238: undefined reference to `blacs_gridinit_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:240: undefined reference to `blacs_gridinfo_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:246: undefined reference to `descinit_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:255: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:256: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:259: undefined reference to `descinit_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:306: undefined reference to `blacs_gridinfo_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:308: undefined reference to `blacs_gridinfo_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:311: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:312: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:316: undefined reference to `indxg2p_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:317: undefined reference to `indxg2p_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:318: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:319: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:327: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:328: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:331: undefined reference to `iceil_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:332: undefined reference to `pjlaenv_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:334: undefined reference to `numroc_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:365: undefined reference to `pdgemr2d_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:366: undefined reference to `pdgemr2d_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:388: undefined reference to `pdsygvx_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:392: undefined reference to `pdgemr2d_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:394: undefined reference to `pdsygvx_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:446: undefined reference to `pdpotrf_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:448: undefined reference to `pdpotrf_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:466: undefined reference to `pdsyngst_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:469: undefined reference to `pdsyngst_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:490: undefined reference to `pdsymm_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:492: undefined reference to `pdgemm_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:495: undefined reference to `pdsymm_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:497: undefined reference to `pdgemm_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:521: undefined reference to `pdsyevd_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:524: undefined reference to `pdsyevd_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:530: undefined reference to `pdsyevx_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:535: undefined reference to `pdsyevx_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:590: undefined reference to `pdgemm_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:594: undefined reference to `pdgemm_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:627: undefined reference to `pdtrsm_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:629: undefined reference to `pdgemr2d_'
/home/mengfc/Siesta/siesta-3.1/Src/rdiag.F:631: undefined reference to `pdtrsm_'
make: *** [siesta] Error 1

请问这是什么问题呢?是libmpi_f90.a放置的位置影响的吗?
回复此楼

» 收录本帖的淘帖专辑推荐

科研工具

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

randome

金虫 (小有名气)

【答案】应助回帖


mazuju028(金币+1): 谢谢交流 2011-10-16 22:09:12
mengfc(金币+5): 谢谢您,那我需要在SRC/MPI文件夹下make吗? 2011-10-16 23:15:51
引用回帖:
6楼: Originally posted by mengfc at 2011-10-16 15:15:51:
想问您一下在第二部configure的时候不需要其它参数吗?比如 --enable-mpi?我若是不加这个的话,后面的FPPFLAGS中出现DMPI,就会报错。

2楼少了一步,在第2步之后make之前应该是 ../Src/configure --enable-mpi
7楼2011-10-16 19:05:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

guohuazhong

至尊木虫 (职业作家)

【答案】应助回帖

★ ★
mengfc(金币+5): 谢谢您,试一下 2011-10-16 10:01:36
zzy870720z: 金币+2, 补上奖励,辛苦了 2012-03-25 16:52:42
MPI_INTERFACE=/home/zhou/soft/siesta/siesta-3.0-rc2/Src/MPI/libmpi_f90.a
中直接写成MPI_INTERFACE=libmpi_f90.a
试试
2楼2011-10-16 09:41:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangguangping

木虫 (著名写手)

【答案】应助回帖

★ ★ ★
mengfc(金币+5): 谢谢您! 2011-10-16 10:02:47
zzy870720z: 金币+3, 谢谢指教,呵呵 2012-03-25 16:52:55
引用回帖:
1楼: Originally posted by mengfc at 2011-10-15 21:00:48:
根据版主贺仪在 http://muchong.com/bbs/viewthread.php?tid=3010970 中第一种方法进行编译。
步骤如下。

1.将siesta-3.0-rc2.tgz文件拷贝到一个临时的目录里面(如tem)

2.解压文件:$ tar -zxv ...

用下面我给出的这个make.arch去编译试试。另外不清楚你的mkl什么版本。
首先按照下面的内容修改你的make.arch,修改好之后将其放到Obj下面(假设你在Obj目录下编译)。
1. cd Obj
2. sh ../Src/obj_setup.sh
3. make
就等着编译吧。

不要像你那么麻烦
---------------------------------
.SUFFIXES:
.SUFFIXES: .f .F .o .a .f90 .F90

SIESTA_ARCH=x86_64-unknown-linux-gnu--Intel

FPP=
FPP_OUTPUT=
FC=/public/openmpi-141-icc/bin/mpif90
RANLIB=ranlib

SYS=nag

SP_KIND=4
DP_KIND=8
KINDS=$(SP_KIND) $(DP_KIND)

FFLAGS= -O2 -i-static
FFLAGS_DEBUG= -g
LDFLAGS=-Vaxlib
FPPFLAGS= -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DMPI  -DCDF  -DGRID_DP -DPHI_GRID_SP


ARFLAGS_EXTRA=

FCFLAGS_fixed_f=
FCFLAGS_free_f90=
FPPFLAGS_fixed_F=
FPPFLAGS_free_F90=

BLAS_LIBS=-L/public/intel/mkl/lib/em64t -lmkl_solver_lp64 -lmkl_intel_lp64 -lguide
LAPACK_LIBS=-L/public/intel/mkl/lib/em64t -lmkl_sequential -lmkl_core
BLACS_LIBS=-L/public/intel/mkl/lib/em64t -lmkl_blacs_openmpi_lp64
SCALAPACK_LIBS=-L/public/intel/mkl/lib/em64t -lmkl_scalapack_lp64

COMP_LIBS=

NETCDF_LIBS=
NETCDF_INTERFACE=

LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(NETCDF_LIBS)

#SIESTA needs an F90 interface to MPI
#This will give you SIESTA's own implementation
#If your compiler vendor offers an alternative, you may change
#to it here.
MPI_INTERFACE=libmpi_f90.a
MPI_INCLUDE=/public/openmpi-141-icc/include

#Dependency rules are created by autoconf according to whether
#discrete preprocessing is necessary or not.
.F.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F)  $<
.F90.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $<
.f.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f)  $<
.f90.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90)  $<

---------------------------------
弘德明志博学笃行
3楼2011-10-16 09:41:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mengfc

金虫 (正式写手)

引用回帖:
3楼: Originally posted by zhangguangping at 2011-10-16 09:41:42:
用下面我给出的这个make.arch去编译试试。另外不清楚你的mkl什么版本。
首先按照下面的内容修改你的make.arch,修改好之后将其放到Obj下面(假设你在Obj目录下编译)。
1. cd Obj
2. sh ../Src/obj_setup.sh
3. ...

这个方法我试过,但是没法并行计算。
mpirun -np可以用,但是仍旧只是用一个核。这是什么问题呢?
4楼2011-10-16 10:04:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +37 医学老男孩 2026-08-13 87/4350 2026-08-18 06:35 by 医学老男孩
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[基金申请] filecode=后面第一个是大写字母 +8 wangze12014 2026-08-14 10/500 2026-08-17 17:05 by xter9665
[基金申请] 时间戳变了,能看出什么问题? +4 基诺咪客 2026-08-17 4/200 2026-08-17 16:10 by Vivilian
[基金申请] 今天系统多次维护,明天很可能放榜! +8 zju2000 2026-08-16 9/450 2026-08-17 12:20 by lmz0216
[基金申请] 时间戳又变了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 启萌科技
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +10 majunge000 2026-08-11 12/600 2026-08-16 08:18 by xli1984
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 是这周出结果还是下周出结果? +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分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
信息提示
请填处理意见