Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
84 Views

MKL - which dependencies to include in the distribution package?

Hi everyone,

Is there a systematic way to determine which libraries to include in an application's distribution package?

Up to now, I have been proceeding by trial and error, adding the libs when a user complains that they are missing on his system. For instance for win64, the end result is a package which includes

libiomp5md.dll
mkl_avx2.dll
mkl_core.dll
mkl_def.dll
mkl_intel_thread.dll
mkl_mc3.dll
mkl_sequential.dll

The app itself uses such functions as LAPACKE_dgetrs, _sgetrs, _dgetrf, _sgetrf, _dgesv, _dgels etc.

Sometimes a library seems to be missing for one user but not for another. This happens for instance on macOS.

Couldn't find relevant documentation about this, so any help will be greatly appreciated.

Thanks.

0 Kudos
3 Replies
Highlighted
Moderator
84 Views

By the design, the recommended way to have all mkl's dll installed on your system. That will allow users to have the optimizations for all supported hardware. In the case of static linking, you need to copy threading libraries ( libiomp and/or tbb).

0 Kudos
Highlighted
New Contributor I
84 Views

Where it is possible to find information from Intel about the functions provided by the listed mkl dll; 
i.e libiomp5md.dll, mkl_avx2.dll, mkl_core.dll, mkl_def.dll, mkl_intel_thread.dll, mkl_mc3.dll, mkl_sequential.dll.

Regards

0 Kudos
Highlighted
Employee
84 Views

Hi,

I believe if you're trying to save some space and sure about the set of the functions being used in an application, this topic will be useful -- Building Custom Dynamic-link Libraries.

Other then that (customDLL builder) it is not recommended to alter the installation and there is no common rule for doing so.

Best regards,
Maria

0 Kudos