Problem with Linking Applications to Intel MKL 10.0 for Linux* Dummy Shared Librares

Submit New Article

Last Modified On :   October 21, 2008 11:21 AM PDT
Rate
 


The Intel MKL 10.0 introduced a new layered linking model in order to provide more flexibility to choose from different compilers and threading runtimes. However, the layered model will break link lines used with earlier versions of Intel MKL. Dummy libraries are provided to support backward compatibility and do not contain any functionality. They are provided as a temporary solution to help customers move to the layered linking model. The dummy libraries will be removed in an upcoming release of the Intel MKL.

When linking an application against the Intel MKL 10.0 and later dummy shared libraries (e.g. libmkl_lapack and libmkl), a problem can occur whereby the application will not run unless the folder /opt/intel/mkl/<version>/lib/32/ exists and contains the Intel MKL shared libraries. This problem occurs even if the Intel MKL shared libraries are present in the same folder as the application.

> objdump -p a.out
Program Header
.....
Dynamic Section:
NEEDED      /opt/intel/mkl/10.0.3.020/lib/32/libmkl_intel.so
NEEDED      /opt/intel/mkl/10.0.3.020/lib/32/libmkl_intel_thread.so
NEEDED      /opt/intel/mkl/10.0.3.020/lib/32/libmkl_lapack.so
NEEDED      /opt/intel/mkl/10.0.3.020/lib/32/libmkl_core.so
NEEDED      libguide.so

To resolve the problem, remove the dummy shared libraries from your link line and use the layered linking model for Intel MKL 10.0.





This article applies to: Intel® Math Kernel Library Knowledge Base