I am trying to compile the latest CP2K on our linux cluster, Dual-Core
AMD Opteron x86_64 GNU/Linux. Using Intel Fortran compiler ifort
(version 10.1), the serial CP2K version was successfully installed
using Linux-x86-64-intel.sopt. But when I come to the MPI parallel
version, it has tortured me for several days, and no lucky at all. I
first installed the mpich2, all binary files like mpicc and mpif90 are
appeared. Under the help of scalapack_installer_0.96, I compiled BLAS,
BLACS, lapack-3.2.1 and scalapck-1.8.0 by mpicc and mpif90 without any
error. A ifort64_mp ACML was downloaded from website.
In my Linux-x86-64-intel.popt file:
CC = /home/zhang/software/cp2k/intel/mpich2-ifort/bin/mpicc
CPP =
FC = /home/zhang/software/cp2k/intel/mpich2-ifort/bin/mpif90
LD = /home/zhang/software/cp2k/intel/mpich2-ifort/bin/mpif90
AR = ar -r
DFLAGS = -D__INTEL -D__FFTSG -D__parallel -D__BLACS -D__SCALAPACK -
D__FFTW3
CPPFLAGS =
FCFLAGS = $(DFLAGS) -I /home/zhang/software/cp2k/intel/include -I /
home/zhang/software/cp2k/intel/acml4.3.0/ifort64_mp/include -mp -O3 -
xW -heap-arrays 64 -funroll-loops -fpp -free
FCFLAGS2 = $(DFLAGS) -I /home/zhang/software/cp2k/intel/include -I /
home/zhang/software/cp2k/intel/acml4.3.0/ifort64_mp/include -mp -O1 -
xW -heap-arrays 64 -fpp -free
LDFLAGS = $(FCFLAGS) -I /home/zhang/software/cp2k/intel/include -I /
home/zhang/software/cp2k/intel/acml4.3.0/ifort64_mp/include
LIBS = /home/zhang/software/cp2k/intel/lib/lib/libscalapack.a \
/home/zhang/software/cp2k/intel/lib/lib/blacsF77.a \
/home/zhang/software/cp2k/intel/lib/lib/blacs.a \
/home/zhang/software/cp2k/intel/acml4.3.0/ifort64_mp/lib/
libacml.a \
/home/zhang/software/cp2k/intel/acml4.3.0/ifort64_mp/lib/
libacml_mv.a \
/home/zhang/software/cp2k/intel/lib/libfftw3.a
OBJECTS_ARCHITECTURE = machine_intel.o
graphcon.o: graphcon.F
$(FC) -c $(FCFLAGS2) $<
With this script file, it generates lots of undefined reference error
messages when it's trying to use libscapack.a. For example,
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a
(pdelget.o):pdelget.f:(.text+0x2cb): more undefined references to
`lsame_'
follow
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a
(PB_Cstypeset.o): In function `PB_Cstypeset':
PB_Cstypeset.c:(.text+0x176): undefined reference to
`saxpy_'
PB_Cstypeset.c:(.text+0x181): undefined reference to
`scopy_'
PB_Cstypeset.c:(.text+0x18c): undefined reference to
`sswap_'
PB_Cstypeset.c:(.text+0x197): undefined reference to
`sgemv_'
PB_Cstypeset.c:(.text+0x1a2): undefined reference to
`ssymv_'
PB_Cstypeset.c:(.text+0x1ad): undefined reference to
`ssymv_'
PB_Cstypeset.c:(.text+0x1b8): undefined reference to
`strmv_'
PB_Cstypeset.c:(.text+0x1c3): undefined reference to
`strsv_'
PB_Cstypeset.c:(.text+0x1fa): undefined reference to
`sger_'
PB_Cstypeset.c:(.text+0x205): undefined reference to
`sger_'
PB_Cstypeset.c:(.text+0x210): undefined reference to
`ssyr_'
PB_Cstypeset.c:(.text+0x21b): undefined reference to
`ssyr_'
PB_Cstypeset.c:(.text+0x226): undefined reference to
`ssyr2_'
PB_Cstypeset.c:(.text+0x231): undefined reference to
`ssyr2_'
PB_Cstypeset.c:(.text+0x23c): undefined reference to
`sgemm_'
PB_Cstypeset.c:(.text+0x247): undefined reference to
`ssymm_'
PB_Cstypeset.c:(.text+0x252): undefined reference to
`ssymm_'
PB_Cstypeset.c:(.text+0x25d): undefined reference to
`ssyrk_'
PB_Cstypeset.c:(.text+0x268): undefined reference to
`ssyrk_'
PB_Cstypeset.c:(.text+0x273): undefined reference to
`ssyr2k_'
PB_Cstypeset.c:(.text+0x27e): undefined reference to
`ssyr2k_'
PB_Cstypeset.c:(.text+0x289): undefined reference to
`strmm_'
PB_Cstypeset.c:(.text+0x294): undefined reference to
`strsm_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pbdtran.o): In
function `pbdtran_':
pbdtran.f:(.text+0xc0): undefined reference to
`lsame_'
pbdtran.f:(.text+0xe5): undefined reference to
`lsame_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pbdtran.o): In
function `pbdtr2af_':
pbdtran.f:(.text+0x1f86): undefined reference to
`lsame_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pbdtran.o): In
function `pbdtr2bt_':
pbdtran.f:(.text+0x22d8): undefined reference to
`lsame_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pbdtran.o): In
function `pbdtr2at_':
pbdtran.f:(.text+0x25f9): undefined reference to
`lsame_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a
(pbdmatadd.o):pbdmatadd.f:(.text+0xd9): more undefined references to
`lsame_'
follow
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pbdmatadd.o):
In function `pbdmatadd_':
pbdmatadd.f:(.text+0x34f1): undefined reference to
`daxpy_'
pbdmatadd.f:(.text+0x351c): undefined reference to
`lsame_'
pbdmatadd.f:(.text+0x358d): undefined reference to
`daxpy_'
pbdmatadd.f:(.text+0x3d13): undefined reference to
`dcopy_'
pbdmatadd.f:(.text+0x3d3e): undefined reference to
`lsame_'
pbdmatadd.f:(.text+0x3da3): undefined reference to
`dcopy_'
pbdmatadd.f:(.text+0x4045): undefined reference to
`dscal_'
pbdmatadd.f:(.text+0x4070): undefined reference to
`lsame_'
pbdmatadd.f:(.text+0x40bb): undefined reference to
`dscal_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pbdtrsrt.o): In
function `pbdtrsrt_':
pbdtrsrt.f:(.text+0x62): undefined reference to
`lsame_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pbdtrget.o): In
function `pbdtrget_':
pbdtrget.f:(.text+0x49): undefined reference to
`lsame_'
pbdtrget.f:(.text+0x28f): undefined reference to
`lsame_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a
(PB_Cdtypeset.o): In function `PB_Cdtypeset':
PB_Cdtypeset.c:(.text+0x185): undefined reference to
`daxpy_'
PB_Cdtypeset.c:(.text+0x190): undefined reference to
`dcopy_'
PB_Cdtypeset.c:(.text+0x19b): undefined reference to
`dswap_'
PB_Cdtypeset.c:(.text+0x1a6): undefined reference to
`dgemv_'
PB_Cdtypeset.c:(.text+0x1b1): undefined reference to
`dsymv_'
PB_Cdtypeset.c:(.text+0x1bc): undefined reference to
`dsymv_'
PB_Cdtypeset.c:(.text+0x1c7): undefined reference to
`dtrmv_'
PB_Cdtypeset.c:(.text+0x1d2): undefined reference to
`dtrsv_'
PB_Cdtypeset.c:(.text+0x209): undefined reference to
`dger_'
PB_Cdtypeset.c:(.text+0x214): undefined reference to
`dger_'
PB_Cdtypeset.c:(.text+0x21f): undefined reference to
`dsyr_'
PB_Cdtypeset.c:(.text+0x22a): undefined reference to
`dsyr_'
PB_Cdtypeset.c:(.text+0x235): undefined reference to
`dsyr2_'
PB_Cdtypeset.c:(.text+0x240): undefined reference to
`dsyr2_'
PB_Cdtypeset.c:(.text+0x24b): undefined reference to
`dgemm_'
PB_Cdtypeset.c:(.text+0x256): undefined reference to
`dsymm_'
PB_Cdtypeset.c:(.text+0x261): undefined reference to
`dsymm_'
PB_Cdtypeset.c:(.text+0x26c): undefined reference to
`dsyrk_'
PB_Cdtypeset.c:(.text+0x277): undefined reference to
`dsyrk_'
PB_Cdtypeset.c:(.text+0x282): undefined reference to
`dsyr2k_'
PB_Cdtypeset.c:(.text+0x28d): undefined reference to
`dsyr2k_'
PB_Cdtypeset.c:(.text+0x298): undefined reference to
`dtrmm_'
PB_Cdtypeset.c:(.text+0x2a3): undefined reference to
`dtrsm_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pdswap_.o): In
function `pdswap_':
pdswap_.c:(.text+0x1505): undefined reference to
`dcopy_'
pdswap_.c:(.text+0x1ab2): undefined reference to
`dswap_'
pdswap_.c:(.text+0x1d68): undefined reference to
`dcopy_'
pdswap_.c:(.text+0x23b3): undefined reference to
`dswap_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pbztrnv.o): In
function `pbztrnv_':
pbztrnv.f:(.text+0x6d): undefined reference to
`lsame_'
pbztrnv.f:(.text+0x8d): undefined reference to
`lsame_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pbzvecadd.o):
In function `pbzvecadd_':
pbzvecadd.f:(.text+0x191): undefined reference to
`lsame_'
pbzvecadd.f:(.text+0x31c): undefined reference to
`lsame_'
pbzvecadd.f:(.text+0x730): undefined reference to
`lsame_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a
(pbzvecadd.o):pbzvecadd.f:(.text+0xabb): more undefined references to
`lsame_'
follow
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pbzvecadd.o):
In function `pbzvecadd_':
pbzvecadd.f:(.text+0x138f): undefined reference to
`zcopy_'
pbzvecadd.f:(.text+0x1909): undefined reference to
`zaxpy_'
pbzvecadd.f:(.text+0x1bd7): undefined reference to
`zscal_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pbztrst1.o): In
function `pbztrst1_':
pbztrst1.f:(.text+0x51): undefined reference to
`lsame_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a
(PB_Cztypeset.o): In function `PB_Cztypeset':
PB_Cztypeset.c:(.text+0x198): undefined reference to
`zaxpy_'
PB_Cztypeset.c:(.text+0x1a3): undefined reference to
`zcopy_'
PB_Cztypeset.c:(.text+0x1ae): undefined reference to
`zswap_'
PB_Cztypeset.c:(.text+0x1b9): undefined reference to
`zgemv_'
PB_Cztypeset.c:(.text+0x1cf): undefined reference to
`zhemv_'
PB_Cztypeset.c:(.text+0x1da): undefined reference to
`ztrmv_'
PB_Cztypeset.c:(.text+0x1e5): undefined reference to
`ztrsv_'
PB_Cztypeset.c:(.text+0x21c): undefined reference to
`zgerc_'
PB_Cztypeset.c:(.text+0x227): undefined reference to
`zgeru_'
PB_Cztypeset.c:(.text+0x23d): undefined reference to
`zher_'
PB_Cztypeset.c:(.text+0x253): undefined reference to
`zher2_'
PB_Cztypeset.c:(.text+0x25e): undefined reference to
`zgemm_'
PB_Cztypeset.c:(.text+0x269): undefined reference to
`zsymm_'
PB_Cztypeset.c:(.text+0x274): undefined reference to
`zhemm_'
PB_Cztypeset.c:(.text+0x27f): undefined reference to
`zsyrk_'
PB_Cztypeset.c:(.text+0x28a): undefined reference to
`zherk_'
PB_Cztypeset.c:(.text+0x295): undefined reference to
`zsyr2k_'
PB_Cztypeset.c:(.text+0x2a0): undefined reference to
`zher2k_'
PB_Cztypeset.c:(.text+0x2ab): undefined reference to
`ztrmm_'
PB_Cztypeset.c:(.text+0x2b6): undefined reference to
`ztrsm_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pzswap_.o): In
function `pzswap_':
pzswap_.c:(.text+0x1505): undefined reference to
`zcopy_'
pzswap_.c:(.text+0x1ab2): undefined reference to
`zswap_'
pzswap_.c:(.text+0x1d68): undefined reference to
`zcopy_'
pzswap_.c:(.text+0x23b3): undefined reference to
`zswap_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pzscal_.o): In
function `pzscal_':
pzscal_.c:(.text+0x25e): undefined reference to
`zscal_'
pzscal_.c:(.text+0x34a): undefined reference to
`zscal_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pzgemv_.o): In
function `pzgemv_':
pzgemv_.c:(.text+0x6a4): undefined reference to
`zgemv_'
pzgemv_.c:(.text+0xade): undefined reference to
`zgemv_'
pzgemv_.c:(.text+0xe5e): undefined reference to
`zscal_'
pzgemv_.c:(.text+0xf3a): undefined reference to
`zscal_'
/home/zhang/software/cp2k/intel/lib/lib/libscalapack.a(pzhemv_.o): In
function `pzhemv_':
pzhemv_.c:(.text+0x80e): undefined reference to
`zscal_'
pzhemv_.c:(.text+0x9de): undefined reference to
`zgemv_'
pzhemv_.c:(.text+0xa75): undefined reference to
`zgemv_'
pzhemv_.c:(.text+0x1118): undefined reference to
`zscal_'
pzhemv_.c:(.text+0x13c1): undefined reference to
`zgemv_'
pzhemv_.c:(.text+0x1469): undefined reference to
`zgemv_'
pzhemv_.c:(.text+0x1796): undefined reference to
`zscal_'
pzhemv_.c:(.text+0x1903): undefined reference to `zscal_'
Any idea is welcomed and thanks in advance
Zhang
to me the arch file looks reasonable. I don't use ifort, therefore I
don't know about the details for this compiler. But to me it looks
like it is not compiler related. All missing routines are basic BLAS
routines. That means, something is wrong the way you link in acml or
the path you specify for this library.
Sorry, that I can't tell you more, but I hope this helps a bit.
Flo
> `zswap_' ...
>
> read more »
CDEFS = -DNO_IEEE $(USEMPI) -DAdd_
ARCH = ar
ARCHFLAGS = cr
RANLIB = /usr/bin/ranlib
Since the compile error message is so long that I miss some beginning
part, I noticed that the lib files, libcp2k_base_lib.a
libcp2k_fft_lib.a libcp2k_lib.a, generated in CP2K/lib/Linux-x86-64-
intel/popt/ also have the undefined reference problems. Such as:
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../lib/Linux-
x86-64-intel/popt/libcp2k_lib.a(kg_gpw_fm_mol_types.o): In function
`kg_gpw_fm_mol_types_mp_kg_gpw_fm_mol_to_fm_mol_':
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_types.F:(.text+0xf48): undefined reference to `dcopy_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../lib/Linux-
x86-64-intel/popt/libcp2k_lib.a(kg_gpw_fm_mol_utils.o): In function
`kg_gpw_fm_mol_utils_mp_read_mo_mol_restart_':
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x740): undefined reference to `dcopy_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x79f): undefined reference to `dcopy_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x7fe): undefined reference to `dcopy_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x222f): undefined referenceto `dcopy_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../lib/Linux-
x86-64-intel/popt/libcp2k_lib.a(kg_gpw_fm_mol_utils.o):/home/zhang/
software/cp2k/intel/test/cp2k/makefiles/../src/kg_gpw_fm_mol_utils.F:
(.text+0x2371): more undefined references to `dcopy_' follow
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../lib/Linux-
x86-64-intel/popt/libcp2k_lib.a(kg_gpw_fm_mol_utils.o): In function
`kg_gpw_fm_mol_utils_mp_mol_mo_random_':
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x79f1): undefined referenceto `dlarnv_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../lib/Linux-
x86-64-intel/popt/libcp2k_lib.a(kg_gpw_fm_mol_utils.o): In function
`kg_gpw_fm_mol_utils_mp_fm_mol_syevx_':
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x7b8a): undefined referenceto `dlamch_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x7e40): undefined referenceto `ilaenv_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x7e86): undefined referenceto `ilaenv_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x8277): undefined referenceto `dsyevx_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../lib/Linux-
x86-64-intel/popt/libcp2k_lib.a(kg_gpw_fm_mol_utils.o): In function
`kg_gpw_fm_mol_utils_mp_fm_mol_syevd_':
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x8c9a): undefined referenceto `dsyevd_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x8d07): undefined referenceto `dcopy_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../lib/Linux-
x86-64-intel/popt/libcp2k_lib.a(kg_gpw_fm_mol_utils.o): In function
`kg_gpw_fm_mol_utils_mp_fm_mol_power_':
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x9181): undefined referenceto `dlamch_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x9500): undefined referenceto `ilaenv_'
/home/zhang/software/cp2k/intel/test/cp2k/makefiles/../src/
kg_gpw_fm_mol_utils.F:(.text+0x9547): undefined referenceto `ilaenv_'
Zhang