Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
7232 Discussions

Link error: Lapack + blas + blacs + scalapack

Sangamesh_B_
Beginner
2,104 Views
Hello all,

I'm trying to compile parallel version of siesta-2.0.2 on Cent OS 5.2 with Intel compiler(ifort-10.1.008) and MKL(10.0.5.025) using MVAPICH2-1.04p1.

For linking MKL, I've followed:

http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/

But still its giving error.

/opt/mpi/mvapich2/1.4rc1/intel/bin/mpif90 -I/opt/libs/netcdf/4.0.1/intel/include/ -openmp -o siesta \
automatic_cell.o arw.o atomlwf.o bands.o bessph.o cgwf.o chkdim.o chkgmx.o chempot.o coceri.o constr.o coxmol.o cross.o denmat.o denmatlomem.o detover.o dfscf.o dhscf.o diagon.o digcel.o fft3d.o diagg.o diagk.o diagkp.o diag2g.o diag2k.o diagpol.o diagsprl.o dipole.o dismin.o dnaefs.o dot.o efield.o egandd.o ener3.o ener3lomem.o extrapol.o extrapolon.o fixed.o fsiesta.o gradient.o gradientlomem.o grdsam.o hsparse.o idiag.o initatom.o initdm.o inver.o iodm.o iohs.o iolwf.o iozm.o ipack.o iopipes.o kgrid.o kgridinit.o kinefsm.o ksv.o ksvinit.o kpoint_grid.o find_kgrid.o linpack.o madelung.o matel.o meshmatrix.o memory.o meshsubs.o m_check_supercell.o mulliken.o minvec.o naefs.o neighb.o m_non_collinear.o ordern.o outcell.o outcoor.o paste.o pdos.o pdosg.o pdosk.o pdoskp.o phirphi.o pixmol.o plcharge.o propor.o pulayx.o ranger.o ran3.o reclat.o redcel.o reinit.o reord.o rhoofd.o rhoofdsp.o rhooda.o savepsi.o shaper.o timer.o vmb.o vmat.o vmatsp.o volcel.o xc.o xijorb.o cellxc.o cdiag.o rdiag.o cgvc.o cgvc_zmatrix.o iocg.o ioeig.o iofa.o iokp.o iomd.o repol.o typecell.o ofc.o poison.o readsp.o radfft.o siesta.o io.o spin_init.o coor.o atm_transfer.o broadcast_basis.o eggbox.o dsyevds.o zheevds.o optical.o phirphi_opt.o reoptical.o transition_rate.o initparallel.o show_distribution.o setspatial.o setatomnodes.o uncell.o cart2frac.o obc.o precision.o sys.o m_cell.o recipes.o files.o spatial.o parallel.o parallelsubs.o parsing.o chemical.o xcmod.o atom.o atmparams.o m_mpi_utils.o m_fdf_global.o m_history.o m_iorho.o atmfuncs.o listsc.o memoryinfo.o m_memory.o numbvect.o sorting.o atomlist.o atm_types.o old_atmfuncs.o radial.o m_smearing.o alloc.o phonon.o spher_harm.o periodic_table.o version.o timestamp.o basis_types.o xml.o pseudopotential.o basis_specs.o basis_io.o onmod.o densematrix.o writewave.o on_subs.o fermid.o m_broyddj.o electrostatic.o mneighb.o globalise.o siesta_cmlsubs.o siesta_cml.o units.o zmatrix.o m_broyden_mixing.o forhar.o m_walltime.o m_wallclock.o m_iostruct.o nlefsm.o overfsm.o conjgr.o conjgr_old.o redata.o m_broyddj_nocomm.o broyden_optim.o ioxv.o dynamics.o md_out.o nag.o pxf.o libfdf.a libwxml.a libxmlparser.a libmpi_f90.a\
/opt/libs/netcdf/4.0.1/intel/lib/libnetcdf.a -L/opt/intel/mkl/10.0.5.025/lib/em64t /opt/intel/mkl/10.0.5.025/lib/em64t/libmkl_solver_lp64.a -Wl,--start-group -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -Wl,--end-group -lpthread
cdiag.o: In function `cdiag':

/siesta_new/siesta-2.0.2/Src/cdiag.F:253: undefined reference to `descinit_'
/siesta_new/siesta-2.0.2/Src/cdiag.F:262: undefined reference to `numroc_'
/siesta_new/siesta-2.0.2/Src/cdiag.F:263: undefined reference to `numroc_'
....
.....


I tried all the ways (using blacs/scalapack or static/dynamic). But no luck.

What's wrong thing am doing here?
0 Kudos
3 Replies
ArturGuzik
Valued Contributor I
2,104 Views
Quoting - sangamesh
Hello all,

I'm trying to compile parallel version of siesta-2.0.2 on Cent OS 5.2 with Intel compiler(ifort-10.1.008) and MKL(10.0.5.025) using MVAPICH2-1.04p1.

-L/opt/intel/mkl/10.0.5.025/lib/em64t /opt/intel/mkl/10.0.5.025/lib/em64t/libmkl_solver_lp64.a -Wl,--start-group -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -Wl,--end-group -lpthread
cdiag.o: In function `cdiag':

/siesta_new/siesta-2.0.2/Src/cdiag.F:253: undefined reference to `descinit_'
/siesta_new/siesta-2.0.2/Src/cdiag.F:262: undefined reference to `numroc_'
/siesta_new/siesta-2.0.2/Src/cdiag.F:263: undefined reference to `numroc_'


Hi,

the undefined references come from ScalaPack. it seems you're missing it.

$MKLPATH/libmkl_scalapack_ilp64.a $MKLPATH/libmkl_solver_ilp64.a -Wl,--start-group $MKLPATH/libmkl_intel_ilp64.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a $MKLPATH/libmkl_blacs_intelmpi_ilp64.a -Wl,--end-group -openmp -lpthread

A.
0 Kudos
Sangamesh_B_
Beginner
2,104 Views
Quoting - ArturGuzik

Hi,

the undefined references come from ScalaPack. it seems you're missing it.

$MKLPATH/libmkl_scalapack_ilp64.a $MKLPATH/libmkl_solver_ilp64.a -Wl,--start-group $MKLPATH/libmkl_intel_ilp64.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a $MKLPATH/libmkl_blacs_intelmpi_ilp64.a -Wl,--end-group -openmp -lpthread

A.

Thanks ArturGuzik. Your suggestion solved the problem.
But the Intel advisor for linking MKL, doesn't allow to select both blacs and scalapack. Why so?

http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/
0 Kudos
ArturGuzik
Valued Contributor I
2,104 Views
Quoting - sangamesh

Thanks ArturGuzik. Your suggestion solved the problem.
But the Intel advisor for linking MKL, doesn't allow to select both blacs and scalapack. Why so?

http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/

Hi,

BLACS is used as the communication layer of ScaLAPACK so if you pick the latter then that you also pick BLACS. Anyway, Gennady can provide more reliable answer.

A.
0 Kudos
Reply