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

Problems with linux and libmkl_gnu_ilp64.a

fachfan
Beginner
567 Views

Hallo

Ive got some problems with the static library libmkl_gnu_ilp64.a!

The whole thing! We can compile our project with the linux icc (intel-compiler) and the libmkl_intel_ilp64.a. Now we want to test the compiling with the gcc. The problem is that we cannot find this library. It was not include in the normal directory /lib/em64t.

For a non 64 bit version it is possible to link with the libmkl.a library. Please can anyone send or tell me where the libmkl_gnu_ilp64.a library is.

Thanks for the help! fachfan

0 Kudos
4 Replies
TimP
Honored Contributor III
567 Views
Where did you get that library name? If you don't use gcc -fopenmp, you use the same MKL libraries with gcc as with icc. If you do use -fopenmp, you link against the gnu openmp compatibility library libiomp5, which is the same as the icc 10.1 compatibility library. Other than the choice between gnu compatibility and "legacy" libguide OpenMP libraries, there is no special library for use with gcc. There is no distinction between gcc and icc in the ilp64 (64-bit integer arguments) library, any more than there is in the 32-bit library.
0 Kudos
fachfan
Beginner
567 Views
Thx for the fast answer!

We find this name of the library in the figure 5-1 you can find in the userguide.pdf of the linux version (10.0.1.14) on page 5-5.

Sorry but we have another question. In the table 5-2 there is show the dependency between the thread-libs and the libguide/libiomp5. If we use the gcc we must use the libiomp5 and the libmkl_gnu_threads to get a parallel version of pardiso? Is this correct or can we use the the libmkl_intel_thread and the libguide to get the same result?

The next problem we have is that we can't link our application statically. We use the compiler option "-static" but it doesn't work. If we use the libs dynamic it works now. Thank you for the help!

- fachfan

0 Kudos
TimP
Honored Contributor III
567 Views
I'm not expert on pardiso, but it should not introduce any new threading libraries. lib_mkl_thread is compatible with either gnu or Intel compilers, and with either libguide or libiomp5. If you have OpenMP code which is compiled by a gnu compiler, and use lib_mkl_thread, then you must use libiomp5.
We have discussed static linking several times on this forum, and there are examples in the release notes. It requires full path names of the libraries, in correct order, and either to repeat the libraries with circular dependencies 3 times, or use the --begin-group .... --end-group facility of current gnu ld. You must avoid linking more than once with an OpenMP library, for example both a static and a dynamic library, or both libiomp5 and libgomp.
0 Kudos
Todd_R_Intel
Employee
567 Views
fachfan,

If you want to use the libiomp5 runtime library from us you should be using the libmkl_intel_thread library. But, if you'd rather use the GNU threading runtime library, then you should use the GNU threading layer libmkl_gnu_thread.

-Todd
0 Kudos
Reply