Library problem with ifc + mkl

Library problem with ifc + mkl

Hi,
I am trying to compile a big program which call several times lapack and blas functions. I am using ifc 7.1 and mkl 6.0 in a PIII machine with redhat 9.0. I am compiling with the old libc library of redhat 8.0 to eliminate some compiler/rh9 incompatibility.
during the compilation I have the following problem:
"
Linking mdfgme.exe ...
egvlap.o(.text+0xbbc): In function `egvlap':
/home/martino/programmazione/mcdf2003/egvlap.f90:69: undefined reference to `dsyevr_'
egvlap.o(.text+0x104f):/home/martino/programmazione/mcdf2003/egvlap.f90:79: undefined reference to `dsyevr_'
menoam.o(.text+0x6fff): In function `menoam':
/home/martino/programmazione/mcdf2003/menoam.f90:325: undefined reference to `dgesdd_'
sdhspl.o(.text+0x1c60): In function `sdhspl':
/home/martino/programmazione/mcdf2003/sdhspl.f90:120: undefined reference to `dsygvd_'
sdhspl.o(.text+0x1f05):/home/martino/programmazione/mcdf2003/sdhspl.f90:126: undefined reference to `dsygvd_'
make: *** [mdfgme.exe] Error 1
"

It is looks like there is not all the lapack function in mkl. Or maybe I missed some link in the Makefile?
Thanks in advance,

Martino

4 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

There is no duplication between the lapack library, which is supplied with mkl, and the main mkl libraries. You must link explicitly with the lapack library, before the mkl library, if you require functions from it.

So it is not true what there is in the page http://www.intel.com/software/products/mkl/ !!

"
Highly optimized library ? BLAS, LAPACK, DFTs, VML, VSL, optimized for the latest Intel processor range performing faster than ever on the Intel Pentium 4 processor, Intel Pentium M processor component of Intel Centrino? mobile technology, Intel Xeon? processor and Intel Itanium 2 processor.
"

I have still problem with the link to lapack, blas and mkl.The lapack and blas libraries I am using are redhat 9.0 rpms. Should I recompile that with ifc or icc?

The lapack and blas libraries from red hat are meant to be used with g77. The lapack and mkl libraries which come together from Intel play a similar role, with a higher level of optimization, with the Intel compiler.
In either case, if you are using lapack, you must link explicitly against both libraries.

You could rebuild lapack and blas from source with ifc, if you don't wish to use mkl. If you search a bit, you will find useful suggestions from people who have done it. Even if you are successful, you will likely equal the performance of mkl only for tasks for which mkl has not been optimized, or which depend on you making your own corrections to source. The value of your time and self-education is for you to judge.

Laisser un commentaire

Veuillez ouvrir une session pour ajouter un commentaire. Pas encore membre ? Rejoignez-nous dès aujourd’hui