Symbol lookup error: undefined symbol: mkl_vsl_serv_threader_for

Symbol lookup error: undefined symbol: mkl_vsl_serv_threader_for

Ritratto di Joseph I.

I am getting the following runtime error : symbol lookup error: /opt/intel/mkl/lib/intel64/libmkl_gf_ilp64.so: undefined symbol: mkl_vsl_serv_threader_for 

I probably have to update my 'LD_LIBRARY_PATH' but I can't seem to figure out what path is missing. Any ideas? Thanks

10 post / 0 new
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione
Ritratto di Gennady Fedorov (Intel)

Joseph,
yes, please check the LD_LIBRARY_PATH first of all or try to use the existing scripts: \bin\mklvars.sh intel64 for setting all required paths.
in the case if these settings will not help - give us the linking line you use for building this application.
here is the link to the MKL Linker Adviser for your reference:
http://software.intel.com/sites/products/mkl/

--Gennady

Ritratto di Joseph I.

Quote:

Gennady Fedorov (Intel) wrote:

Joseph,
yes, please check the LD_LIBRARY_PATH first of all or try to use the existing scripts: \bin\mklvars.sh intel64 for setting all required paths.
in the case if these settings will not help - give us the linking line you use for building this application.
here is the link to the MKL Linker Adviser for your reference:
http://software.intel.com/sites/products/mkl/

--Gennady

Hi Gennady,

Thank you for your response i tried using mklvars.sh intel 64 to set any required paths but I still get the same error. The following is the linking line I have used

-L/opt/intel/mkl/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_cdft_core -lmkl_gf_ilp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_ilp64 -ldl -lpthread -lm -L/opt/intel/lib/intel64 -liomp5

Ritratto di Gennady Fedorov (Intel)

Hi,
We have checked the problem with the latest version 11.0 update1 and see no problems.
We have used on of VSL example ( vsldbasicstats.f ) from \examples\vslf\source\ directory.
Would you please check if you can build and execute this example too and please let us know the results.
in the case if any further problem - please give us your example for checking the problem on our side.

one more note - you use ILP64 interfaces, therefore you need to add the following compiler options:
-fdefault-integer-8 -m64

--Gennady

Ritratto di Joseph I.

Quote:

Gennady Fedorov (Intel) wrote:

Hi,
We have checked the problem with the latest version 11.0 update1 and see no problems.
We have used on of VSL example ( vsldbasicstats.f ) from \examples\vslf\source\ directory.
Would you please check if you can build and execute this example too and please let us know the results.
in the case if any further problem - please give us your example for checking the problem on our side.

one more note - you use ILP64 interfaces, therefore you need to add the following compiler options:
-fdefault-integer-8 -m64

--Gennady

Hi Gennady,

Thanks again fro your response. It seems that I get the runtime error whenever i compile Fortran with gfortran (4.6.3), however when I compile with ifort, the error is not there. That is very weird. The program I am trying to build with MKL is NWChem a computational chemistry software you can download the source http://www.nwchem-sw.org/download.php?f=Nwchem-6.1.1-src.2012-06-27.tar.gz (it is GPL) .
This is the bash script you will need to use to buld the application (you will need to run the script inside the "src" directory)


#!/bin/bash

export NWCHEM_TOP=/home/doudou/Programs/nwchem-6.1.1-mkl

export NWCHEM_TARGET=LINUX64

export USE_MPI=y

export USE_MPIF=y

export USE_MPIF4=y

export MPI_LOC=/home/doudou/Programs/OpenMPI

export LIBMPI="-lmpi_f90 -lmpi_f77 -lmpi -lpthread"

export MPI_LIB=$MPI_LOC/lib

export MPI_INCLUDE=$MPI_LOC/include

export LARGE_FILES=TRUE

export NWCHEM_MODULES=all

export MKLROOT=/opt/intel/mkl

export BLASOPT="-L$MKLROOT/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_cdft_core -lmkl_gf_ilp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_ilp64 -ldl -lpthread -lm -L/opt/intel/lib/intel64 -liomp5"

make clean

make FC=gfortran FFLAGS="-fdefault-integer-8 -m64"  nwchem_config

make FC=gfortran FFLAGS="-fdefault-integer-8 -m64"  HAS_BLAS=yes

Thanks again for your help

Ritratto di mecej4

If you want help with compiling a huge application (~80 MB of source code) with GFortran, you should probably seek that help elsewhere.

If you can make up a small example that encapsulates the build problems that you experienced and establish that there is, indeed, a problem with a specific set of MKL routines, you could post that here.

Ritratto di Joseph I.

Quote:

mecej4 wrote:

If you want help with compiling a huge application (~80 MB of source code) with GFortran, you should probably seek that help elsewhere.

If you can make up a small example that encapsulates the build problems that you experienced and establish that there is, indeed, a problem with a specific set of MKL routines, you could post that here.

I dont need help with compiling with gfortran (in case you have not read the title of thread), the code compiles fine nad I am able to link all the libraries fine, except when it was compiled with gfortran I get a runtime error, I dont get this error with ifort.

Ritratto di Ronald W Green (Intel)

first, that symbol is in libmkl_intel_thread, at least in the version of MKL packaged with the Composer XE 2013 (aka compiler 13.0 compilers) so perhaps something foobar is going on with your build since you claim you have that lib in your link line.  Make sure to 'make distclean' or something equivalent, maybe even going back to the configure step. 

you have not mentioned what compiler version you are using, nor have you said if you 'source /opt/intel/bin/compilervars.sh intel64', which is essential.

-m64 is for Mac OS and for gcc compatibilty.  For Intel Fortran for Linux, I'd suspect you need these options, but do check with NWChem gurus:

-integer-size 64 -mc-model medium -dynamic-intel

along with the other options (you showed the gfortran options, not the options you're using for Intel - what are those?)

ron

Ritratto di Andrey Tikhonov

Hello. I had the same problem, except for I didn't use gfortran, I used g++.

The problem is that the resulting binary is not linked with libmkl_intel_thread, and neither is libmkl_gf_ilp64 - you can check it with ldd.

The workaround is as follows:

LD_PRELOAD=/path/to/libmkl_core.so:/path/to/libmkl_intel_thread.so your-program

Ritratto di Andrey Tikhonov

You can force ld to link to this libraries by using --no-as-needed switch, like this:

ld obj1.o obj2.o -lfoo -lbar --no-as-needed -lmkl_core -lmkl_intel_thread

Accedere per lasciare un commento.