I know this topic has come up before, but I can't see that anyone has found a satisfactory resolution to it.
Is there any progress on finding out exactly which MKL libraries I need to distribute with my application so that it will run on all the different types of hardware that my clients might have? Some people have suggested using Dependency Walker, but my understanding is that it doesn't identify the DLLs that are linked at run time, plus it only identifies the ones that apply to my particular hardware.
I am only using two MKL routines (Pardiso and DFeast_scsrgv). Does anyone have a solution?
You can build custom dll and distribute this dll with your applications. it would contains all optimizationns for these specific routines for all latest IA. You can find description how to build this custom dll into User's Guide - Building Custom Dynamic-link Libraries.
distribute all dll from redist folders.
Thanks, but my primary aim is to minimize the total size of the MKL dlls I have to distribute and so I would like to find out exactly which ones are required rather than distributing them all. Creating a custom dll would be handy but I would like to minimize its size by just including the dlls I need.
That exactly what custom dll does. You will have only one dll instead on many items from redist folder. MKL doesn't provide the list of dll you need for redistribution due to a lot internal dependencies.
Add one piece :
We had some articles earlier on the linkage and distribution but seems be archived as low views. I create a new one article to address this. Please see Intel® Math Kernel Library (Intel MKL) Linkage and Distribution - Quick Reference Guide
The article describes various types of linkage models offering in Intel® Math Kernel Library (Intel MKL) and which Intel MKL libraries are required to be distributed by developers with applications