- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Does anyone have a good sample project that shows how to access MKL, not merely from within a C# program, but from a C# Visual Studio 2008 project? The Intel page, http://software.intel.com/en-us/articles/using-intel-mkl-in-your-c-program is command-line oriented... and there seems to be quite a number of hurdles to jump with regard to setting default directories and path variables and so forth.
Also, I have encountered issues with the MKL license protection. I would like to be able to work on application that uses MKL on a computer licensed for MKL, but I would like to be able to check my project into Subversion, open from Subversion on a computer without an MKL license and edit and build the non-MKL related parts. Presumably the way to do this would be to isolate the MKL-dependent parts in a DLL. Can anyone suggest a strategy for doing this that has worked well for them?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
The samples show rather how to write code than how to build application.
In any case to build application with MKL calls one should: 1. Write code; 2. Build custom dll (using
The common way to do the last is adding dll location to the PATH environment variable or copying dll into any of listed in the PATH. One can also add existent item to VS project.
Its not clear about the license issue. If you build custom dll it should be redistributable. The fragment of the MKL User Guide document:
Building a Custom DLL
A custom DLL enables you to reduce the collection of functions available in Intel MKL libraries to those required to solve your particular problems, which helps to save disk space and build your own dynamic libraries for distribution.
Could you please provide more details regarding the issue?
Thanks,
Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This article also might be useful.....
Regards,
Naveen Gv
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for your help.
Here's what I'm stuck on now. It appears that the mkl.dll generated by the makefile supplied in "Using Intel MKL in your C# program" is not self-contained, but references many other DLLs in Program Files\\Intel\\MKL\\10.2.4.032\\ia32\\bin.
In order for the program to run without giving a "missing module" error, two things need to be true:
a) All of the files in ia32\bin need to be present.
b) The program needs to know where they are.
c) The program needs to add that location to the "path" environment variable.
I'm not sure what the best way to achieve these in a released product. For testing and development I can limp along by having my program call
string newpath = System.Environment.GetEnvironmentVariable("path")
newpath += ";C:\\Program files\\ ... \\ia32\\bin"
System.Environment.SetEnvironmentVariable("path", newpath);
But for a released product I'm not sure how the program is supposed to know where those files are, nor how it can be sure they are there. The end-user will not have purchased and installed the MKL library.
Is an application supposed to include all of the necessary files from ia32\bin and install them in a known location itself?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
You are right, all dependents libraries should be visible as well.
See redist.txt file for the list of redistributable dlls.
More details regarding redistribution you may find on the following page:
You may also try to build sequential custom dll if it is not critical for your application.
Thanks,
Vladimir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
You also can link MKL routines statically into your DLL. In this case your link line for IA32 architecture should be look like this:
mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib
In this case only libiomp5md.dll should be redistributed in addition to your application and custom DLL.
Thanks,
Artem
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
talks about a "redistributable package is created for simplifying your application's deployment. It contains all the redistributable files listed in "credist.txt". The package is a .zip file containing an IA-32 and an Intel-64 redistributable package. Each package is self-installable." I cannot find this zip file anywhere in my fully installed MKL for Windows. Where is it located and what is the file name?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You need to download them first. This is excerpt from Bonnie Aona's nice document (FAQ on redist). You can find it on the page to which link you posted.
Redistributable Library packages for Intel Compiler 11.x Professional Editions for Windows*
i. For the convenience of the application vendor, redistributable library packages for Intel Compiler 11.x Professional Editions for Windows* are available as separate downloadable files from Intel Registration Center (https://registrationcenter.intel.com/).
Specific filename conventions are listed below.
Intel C++ Compiler Professional Edition for Windows*
11.0 File name format: w_cproc_p_x.x.xxx_redist.zip
Example: w_cproc_p_11.0.074_redist.zip
11.1 File name format: w_cproc_p_x.x.xxx_redist_.exe
Examples: w_cproc_p_11.1.054_redist_ia32.exe
Examples: w_cproc_p_11.1.054_redist_intel.exe
Examples: w_cproc_p_11.1.054_redist_ia64.exe
Intel Visual Fortran Compiler Professional Edition for Windows*
11.0 File name format: w_cprof_p_x.x.xxx_redist.zip
Example: w_cprof_p_11.0.74_redist.zip
11.1 File name format: w_cprof_p_x.x.xxx_redist_.exe
Examples: w_cprof_p_11.1.054_redist_ia32.exe
Examples: w_cprof_p_11.1.054_redist_intel.exe
Examples: w_cprof_p_11.1.054_redist_ia64.exe
Redistributable Files from Microsoft
Microsoft also provides the redistributable package for Microsoft Visual Studio 2005* and 2008*:
For Microsoft Visual C++ 2005* x86 - http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&displaylang=en
For Microsoft Visual C++ 2005* x64 - http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=eb4ebe2d-33c0-4a47-9dd4-b9a6d7bd44da
For Microsoft Visual C++ 2008* x86 - http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en
For Microsoft Visual C++ 2008* x64 - http://www.microsoft.com/downloads/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E&displaylang=en
A.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page