<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Wed, 25 Nov 2009 16:17:29 -0800 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/en-us/articles/intel-mkl-kb/type/compatibility/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles feed</title>
    <link>http://software.intel.com/en-us/articles/intel-mkl-kb/compatibility/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Using Intel® MKL in your Python program</title>
      <description><![CDATA[ <b>Introduction</b><br /><br />This article describes how to use the Intel® Math Kernel Library (Intel® MKL) from a Python program. There's more than one way to write Python programs to interface with native libraries. I've simply chosen one so that I can emphasize what might be less commonly known: how to build a custom shared library from Intel MKL so that you can call it from your script. <br /><br />I'll run through the basics steps of accessing Intel MKL from Python 2.6 on a 64-bit Linux OS. The example program calls the CBLAS interface to the DGEMM function which performs a multiplication (and optional add) on general, double precision matrices. Much more about these functions can be found in the Intel® MKL reference manual (<a href="http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/">available online here</a>). <br /><br /><ol>
<li><b>Build a custom library:</b> To interface with Intel MKL from Python we recommend you use the custom library builder in the tools/builder sub-directory of the Intel MKL package. The Intel® MKL User's Guide has documentation on this tool (<a href="http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/">docs online</a>). Here briefly are the steps I took to do this: <br /><br /><ol>
<li>Set up your environment to use the desired version of Intel MKL:<br /><code>source /<i>&lt;MKLpath&gt;</i>/tools/environment/mklvarsem64t.sh</code></li>
<li>Build the DLL:<br /><code>cd /<i>&lt;MKLpath&gt;</i>/tools/builder</code><br /><code>make em64t name=~/libmkl4py export=cblas_list</code> </li>
<li>The library as built above will depend on the OpenMP* threading runtime library used by Intel MKL (libiomp5.so). You should make sure that both libraries, libmkl4py.so and libiomp5.so, are in a directory specified in the LD_LIBRARY_PATH environment variable. </li>
</ol></li>
<li><b>Call Intel MKL in your Python script:</b> The following is a simple script (also available <a href="http://software.intel.com/file/22334">here</a>) that loads the shared library just created and calls the matrix function. <br />
<ul>
<code></code>
<pre name="code" class="python">from ctypes import *<br /><br /># Load the share library<br />mkl = cdll.LoadLibrary("./libmkl4py.so")<br />cblas_dgemm = mkl.cblas_dgemm<br /><br />def print_mat(mat, m, n):<br />  for i in xrange(0,m):<br />    print " ",<br />    for j in xrange(0,n):<br />      print mat[i*n+j],<br />    print <br /><br /># Initialize scalar data<br />Order = 101  # 101 for row-major, 102 for column major data structures<br />TransA = 111 # 111 for no transpose, 112 for transpose, and 113 for conjugate transpose<br />TransB = 111<br />m = 2<br />n = 4<br />k = 3<br />lda = k<br />ldb = n<br />ldc = n<br />alpha = 1.0<br />beta = -1.0<br /><br /># Create contiguous space for the double precision array<br />amat = c_double * 6      <br />bmat = c_double * 12<br />cmat = c_double * 8<br /><br /># Initialize the data arrays<br />a = amat(1,2,3, 4,5,6)<br />b = bmat(0,1,0,1, 1,0,0,1, 1,0,1,0)<br />c = cmat(5,1,3,3, 11,4,6,9)<br /><br />print "\nMatrix A ="<br />print_mat(a,2,3) <br />print "\nMatrix B ="<br />print_mat(b,3,4)<br />print "\nMatrix C ="<br />print_mat(c,2,4)<br /><br />print "\nCompute", alpha, "* A * B + ", beta, "* C"<br /><br /># Call Intel MKL by casting scalar parameters and passing arrays by reference<br />cblas_dgemm( c_int(Order), c_int(TransA), c_int(TransB), \<br />             c_int(m), c_int(n), c_int(k), c_double(alpha), byref(a), c_int(lda), \<br />             byref(b), c_int(ldb), c_double(beta), byref(c), c_int(ldc))<br /><br />print_mat(c,2,4)<br />print</pre>
</ul>
</li>
<li>A few notes: 
<ul>
<li>Matrices in the BLAS and LAPACK parts of Intel MKL are stored in one dimensional arrays and integers are used to specify their geometry. </li>
<li>I've actually loaded here CBLAS interface to the general matrix multiply function which allows you to choose how the matrix is specified. In my script I've listed the matrix by rows (row-major ordering). If you do not use the cblas interface to the BLAS or if you use LAPACK you should keep in mind that these functions assume the Fortran method of listing matrices by columns (column-major ordering). </li>
</ul>
</li>
</ol>Here is the Python code I created that implements the steps above: <a href="http://software.intel.com/file/22334">matmult.py</a><br /><br /><strong>Examples code:</strong><br /><br />
<p>We extended the list of examples demonstrate how possible to call different ( not only widespread example like dgemm ) from the Python program:</p>
<p>See the list of 3 different examples attached:<br />dft.zip  - shows the Python program calls 1D DFTI API<br />spblas.zip - shows how to call  matrix-matrix multiplication routine for a sparse matrix stored in the block compressed format (BSR)<br />vsl.zip - shows how to call vdRngGaussian routine ( generates normally distributed random numbers)  from VSL domain.</p>
<p><strong>Notes:<br /></strong>Each zip file contains  *.res and *_list files mean input file and file for custom library building correspondingly</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/using-intel-mkl-in-your-python-programs</link>
      <pubDate>Fri, 13 Nov 2009 06:59:08 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/using-intel-mkl-in-your-python-programs#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/using-intel-mkl-in-your-python-programs</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>FFT interfaces in Intel® MKL</title>
      <description><![CDATA[ <br />
<p>Dear all,<br /><br />In this note I would like to remove some confusion about FFT interfaces supported by <a href="http://software.intel.com/en-us/intel-mkl" title="Intel MKL">Intel® MKL</a>.</p>
<p>Firstly, some history. The library has been providing <a href="http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/win/mkl/refman/fft/fft_intro.html#fft_intro" title="DFTI">Discrete Fourier Transforms Interface (DFTI)</a> since MKL 6.0 (2002). In 2005, Intel MKL 8.1 added open source FFTW2 and FFTW3 wrappers to support essential functionality of the widely known <a href="http://www.fftw.org" title="FFTW">Fastest Fourier Transform in the West</a> library. In order to use the wrappers one had to compile them by their favourite C compiler.</p>
<p>Starting with Intel MKL 10.2 (2009), in particular with the latest release of <a href="http://software.intel.com/en-us/forums/intel-math-kernel-library/topic/68490" title="Announcement of MKL 10.2 Update 2 at MKL Forum">MKL 10.2 Update 2</a>, <b>the FFTW3 interface has been fully integrated in MKL</b>, so that an application using FFTW3 can be linked directly to the Intel MKL. Thus, an application using FFT functionality of Intel MKL can use either DFTI or FFTW3 interface, without extra effort for building the wrappers.<br /><br />You are encouraged to upgrade your copy of Intel MKL to the <a href="http://software.intel.com/en-us/intel-mkl" title="Intel MKL">latest MKL release</a>.</p>
<p>With Intel MKL 10.2 and later all you need to use FFT functionality, either via DFTI or FFTW3 interface, is to <a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/&quot;&gt;link"></a><a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor" title="MKL Link line advisor">link</a><a></a> with Intel MKL.</p>
<p>For advanced use however the FFTW2 and FFTW3 wrappers to Intel MKL are provided in open source. For example,</p>
<ul>
<li>The FFTW2 interface doesn't support single precision and double precision interface in separate name spaces, so one has to compile the FFTW2 wrappers for the particular case of use.</li>
<li>The Fortran interface of FFTW3 in Intel MKL does not support GNU g77 name decoration scheme. In that case one can still use FFTW3 interface with Intel MKL by compiling FFTW3 wrappers specially for use with g77 compiler.</li>
<li>The implementation of the FFTW2 and FFTW3 wrappers may serve an additional usage example of MKL DFTI.</li>
</ul>
<p>More details on FFTW2 and FFTW3 interfaces to Intel MKL can be found in <a href="http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/win/mkl/refman/appendices/mkl_appG_Intro.html" title="MKL RM, Appendix G">MKL Reference Manual, Appendix G</a>.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/fft-interfaces-in-intelr-mkl</link>
      <pubDate>Mon, 26 Oct 2009 05:45:51 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/fft-interfaces-in-intelr-mkl#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/fft-interfaces-in-intelr-mkl</guid>
      <category>Intel Software Network communities</category>
      <category>Intel® MKL</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Code & Downloads</category>
    </item>
    <item>
      <title>How to create a MKL &amp;#34;Dummy&amp;#34; Library</title>
      <description><![CDATA[ <p><strong><span style="text-decoration: underline;">Background:</span></strong><span style="text-decoration: underline;"> </span><br />In order to provide maximum support for numerous combination of programming language, interface, compiler type, threading model, we re-architected Intel® MKL since MKL 10.0. This new Intel® MKL architecture provides 4 layered libraries so that users can choose linking combinations according to the wanted compiler, interface and threading runtimes. See <a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/"><b>Intel® Math Kernel Library Link Line Advisor</b></a> <a target="_blank" href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/feed/"></a>. <br /><br />Some users who used to previous MKL version may be confused by the change.<br />For example, in earlier MKL, you may have the link line<br />-lmkl_lapack -lmkl -lguide -lpthread<br /><br />In new MKL, the new layered link line are like <br />-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread (intel compiler on lp64 machine)<br /><br />In order to support backward compatibility, during the time from MKL 10 to MKL 10.2,  we also introduce dummy libraries as temporary solution to help customers move to the layered linking model. The names of dummy libraries are same as the library in earlier version, but they do not contain any functionality, but only dependencies on a set of layered libraries.<br /><br />For example, the link line may still work in MKL v. 10.1.3<br />-lmkl_lapack -lmkl -lguide -lpthread  <br /><br />But please notes here the libmkl_lapack.so,  libmkl.so are dummy library.  They are actually equal to <br />-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core</p>
<p><span style="text-decoration: underline;"><strong>Dummy library removed and </strong><strong>recommended solution:</strong></span><br />As the claim in <a href="http://software.intel.com/en-us/articles/dummy-libraries-have-been-removed/"><b>Compatibility libraries (also known as dummy libraries) no more available</b></a>,  since MKL 10.2, we remove the dummy libraries completely. You are strongly encouraged to link Intel MKL library with layered mode.  </p>
<p>Please refer to <a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/"><b>Intel® Math Kernel Library Link Line Advisor</b></a> </p>
<p>or the map table in <a href="http://software.intel.com/en-us/articles/performance-tools-for-software-developers-for-easily-migrating-from-mkl-9x-to-10x/"><b>For easily migrating from Intel® MKL 9.x to 10.x</b></a></p>
<p>For some users who may still want to use one library instead of the "complex" combination of layered libraries, you may create the "dummy" library manually.<strong></strong></p>
<p><strong><span style="text-decoration: underline;">Intel® MKL for Linux</span></strong></p>
<p>For example, you had one library libmkl.so from earlier version which worked and you hope keep use the name in your link line or makefile, you can create a "dummy" library manually,</p>
<p>For example, you are using intel compiler, threading mode, lp64 interface, create the dummy library by command</p>
<p>$ vi libmkl.so</p>
<p>add the below text in the fake file</p>
<p>GROUP (-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core)</p>
<p>Keep it into the MKL library directory.</p>
<p>If you had used static library -lmkl_em64t,    </p>
<p>   $ vi libmkl_em64.a</p>
<p>Add the text</p>
<p>GROUP (libmkl_intel_lp64.a libmkl_intel_thread.a libmkl_core.a)</p>
<p>Keep it into the mkl library directory.</p>
<p><strong><span style="text-decoration: underline;">Intel® MKL for windows</span></strong></p>
<p>In case of Windows you may create c file with the following code:</p>
<p>// dynamic library link</p>
<p>#pragma comment(lib, "mkl_intel_c_dll")<br />#pragma comment(lib, "mkl_intel_thread_dll")<br />#pragma comment(lib, "mkl_core_dll")<br />#pragma comment(lib, "libiomp5md")</p>
<p> // static library link<br />//#pragma comment(lib, "mkl_intel_c")<br />//#pragma comment(lib, "mkl_intel_thread")<br />//#pragma comment(lib, "mkl_core")<br />//#pragma comment(lib, "libiomp5md")</p>
<p>void dummy_func_somethingrandom_1234217846()</p>
<p>{ return; }</p>
<p>Compiling this code with any compiler and making lib out of it:</p>
<p>&gt;cl -c mkl_ia32.c</p>
<p>&gt;lib mkl_ia32.obj</p>
<p>The fake function is essential, since in some cases Microsoft Visual Stuio linker can report an error while linking library without any functions in it.</p>
<p><strong>TroubleShooting</strong><strong> regarding dummy library:</strong> </p>
<ol>
<li><a href="http://software.intel.com/en-us/articles/problem-with-linking-applications-to-intel-mkl-100-for-linux-dummy-shared-librares/"><b>Problem with Linking Applications to Intel MKL 10.0 for Linux* Dummy Shared Librares</b></a></li>
<li><a href="http://software.intel.com/en-us/articles/performance-tools-for-software-developers-errors-linking-intel-compilers-with-intel-mkl-10x-dummy-libs/"><b>Errors linking Intel® compilers with Intel® MKL 10.x </b></a></li>
<li><a href="http://software.intel.com/en-us/articles/mkl-fatal-error-cannot-load-neither-xxxx-with-intel-mkl-10x/"><b>"MKL FATAL ERROR: Cannot load neither xxxx" with Intel MKL 10.x</b></a></li>
<li>If you are link mkl library pure layaered library by configure as below</li>
</ol>
<p>./configure --mkl_lib='/opt/intel/mkl/10.2.x.0xx/lib/em64t/libmkl_intel_lp64.a <br />/opt/intel/mkl/10.2.x.0xx/lib/em64t/libmkl_sequential.a <br />/opt/intel/mkl/10.2.x.0xx/lib/em64t/libmkl_core.a'</p>
<p>Please note the mark '  ' are required.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/dummy-libraries-are-removed-since-version-102-update-2</link>
      <pubDate>Mon, 19 Oct 2009 01:12:28 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/dummy-libraries-are-removed-since-version-102-update-2#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/dummy-libraries-are-removed-since-version-102-update-2</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>How to build MKL application in Intel Visual Fotran (MSVC*2005)</title>
      <description><![CDATA[ <p><strong>Software Requirement:</strong> <br />1. Intel® Visual Fortran Compiler Professinal for Windows.  <br />   The compiler were requied to installed and intergated to Microsoft VC 2005 or VC 2008 correctly.</p>
<p>2. Intel® MKL for windows<br />   You can install MKL seperately or install the intergarted MKL when install Intel Fortran Compiler Professional version. <br /><br />3. Microsoft* Visual Studio 2005 or 2008.<br />For who'd like to build x64 bit appliation, please install the MSVC* package which supports X64 development. <br /><br /><strong>Step1 : Which kind of application: ia32, em64t or ia64 application you need to build?</strong><br />Which target machine you need your application run on? <br />ia32: 32 bit application. <br />EM64t: Intel 64 bit application<br />IA64:  Intel Itanium 64bit application. <br /><br />Most of us may build ia32 or em64t application on a xeon machine with windows*. Then in MSVC* environment, please check the project configuration manager=&gt; active platform.  They should be  "ia32" or "X64" (which is corresponding to em64t). <br /><br /><strong>Step 2 : Which MKL library you need link against?</strong> <br /><strong>2.1)</strong> please check the on-line KB article <a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/" title="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/"><b>Intel® Math Kernel Library Link Line Advisor</b></a>  After choose it, you can get which libraries you need to list.  <br /><br />For example, <br />"mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib" are enough for a ia32 windows application generally.<br />"mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib" are ok for a X64 windows appliation <br /><br /><strong>Step 3: How to link MKL in your project manually?<br />3.1)</strong>  Please follow the steps in <a href="http://software.intel.com/en-us/articles/integrating-a-microsoft-visual-studio-ide-project-with-intel-mkl/"><strong>how to use MKL in MSVC</strong></a>  to add the include path, library path and mkl library as the article show. <br /><br />For example, add include path manually<br /><strong><img width="753" src="http://software.intel.com/file/23743" alt="fortran_include.JPG" height="461" title="fortran_include.JPG" /></strong><br /><br />please take care of about library path,  you need enter right directory:<br />&lt;MKL install dir&gt;\ia32,  for ia32 application<br />&lt;MKL install dir&gt;\em64t, for X64 application<br />&lt;MKL install dir&gt;\ia64, for IA64 application<br />they can't be mixed. <br /><br /><br /><strong>Step 4: How to link MKL in your project automatically - One Button Support  (optional)<br /></strong>The recent MKL version have provided one "build" menu in MSVC environment. Click <strong>one button</strong>, all of environment setting and required library are ready in your project. <br /><strong>* This step can replace the step3 in most of case.   <br />Or if the button is not show, please try step3, set the paths and library manually. <br />4.1)</strong> See below sreencopy in MSVC 2005, click the version you need<br /><img width="576" src="http://software.intel.com/file/20711" height="348" /><br />Then the required library will be added in your project automatically. <br /><img width="576" src="http://software.intel.com/file/20712" height="348" /><br /><br /><strong>4.2) In Visual Fortran compiler,</strong> it is a little different,<strong> to integrate MKL,  </strong>please click the compiler option as below, change the "No" to value like /Qmkl:parallel or /Qmkl:sequential<br /><strong><img src="http://software.intel.com/file/21492" alt="OneButton_IVF.jpg" title="OneButton_IVF.jpg" /><br /></strong></p>
<p><br />Please note: some interface libraries (i.e mkl_lapack95.lib mkl_blas95.lib fftw3xc_ms) are not MKL standard library,  so the "one button" integration don't support it.  You may add them manually if you need to use them. <br /><strong><br />Step 5: About Compaq*Visual Fortran support and porting from 32bit to 64bit</strong> <strong>(Optional for who have used CVF)<br /></strong>CVF and Intel Fortran compiler use different call convention by default:<br />CVF: stdcall <br />Intel Fortran, C Compiler: cdecl (default interface of the Microsoft Visual C* application) <br /><br /><strong>5.1)</strong> MKL support both of them on ia32 platform, but if you are porting from CVF to intel Fortran, you may take care of the required library: mkl_intel_s or mkl_intel_c.lib</p>
<ul>
<li>Using the CVF compiler<br />The CVF compiler will link with mkl_intel_s[_dll].lib if routines are compiled with the default interface. However, if you compile with the option /iface=(cref,nomixed_str_len_arg), the compiler will link with mkl_intel_c[_dll].lib . </li>
<li>Using the Intel® Fortran compiler<br />The Intel Fortran compiler will link with mkl_intel_c[_dll].lib by default. But if the /Gm option is used, call mkl_intel_s  [_dll].lib (/Gm enables CVF and Powerstation calling convention compatibility, so does /iface:cvf).</li>
</ul>
<p><strong>5.2)</strong> MKL don't provide em64t and IA64 CVF interface support.  So if you are porting CVF 32bit application to X64 or IA64 platform with Intel Fortran compiler and MKL. Please note, you must to link "mkl_intel_lp64|ilp64, mkl_intel_thread, mkl_core.lib" and remove the compiler option /Gm or /iface:cvf.<br /><br />Here is a MSVC 2005 project (Intel fortran 11.0.0.074 IA32 application) for your reference.<a href="javascript:void(0)" onclick="ndownload('http://software.intel.com/file/21493')"><strong>DFT_VF_sample.zip</strong></a><br /><br /><strong>Troubleshooting<br /></strong>When build the project, <br />1. <strong>fatal error LNK1104: cannot open file 'mkl_xxx.lib'<br /></strong>please make sure the library is in the library path and the path you marked in step 3 or step 4 are right one<br /><br />2. <strong>"error #7002: Error opening the compiled module file.  Check INCLUDE paths. [MKL_DFTI]."<br /></strong>Please add the header file mkl_dfti.f90 in your code, for example, <br /><br />! Include to build module MKL_DFTI<br />INCLUDE 'mkl_dfti.f90'<br />before  the code line<br />USE MKL_DFTI<br /><br />Or copy the mkl_dfti.f90 file to the source directory of your project and include it in your Project. </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-build-mkl-application-in-intel-visual-fotran-msvc2005</link>
      <pubDate>Mon, 03 Aug 2009 01:50:56 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-build-mkl-application-in-intel-visual-fotran-msvc2005#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-build-mkl-application-in-intel-visual-fotran-msvc2005</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>OMP Error #15: Initializing libguide40.dll, but found libiomp5md.dll already initialized</title>
      <description><![CDATA[ <p><b>Symptom(s):</b><br /><b>OMP: Error #15: Initializing libguide40.lib, but found libiomp5md.lib already initialized.</b></p>
<p>or vice versa message<br />This can cause performance degradation.</p>
Set environment variable KMP_DUPLICATE_LIB_OK=TRUE if you want your program to continue in this case.
<p><b></b></p>
<p><b>Cause:<br /><br /></b></p>
<p>Both libiomp5md.dll and libguide40.dll are Intel OpenMP Runtime library. The libiomp5md.dll is new Intel OpenMP* Compatibility library while the libguide40.dll is legacy OpenMP library. Since Intel® MKL 10.1.0.018 and Intel® Compiler 11.x and later,  the default OpenMP runtime library for Intel MKL has been changed from libguide to libiomp.  Please see &lt;<a href="http://software.intel.com/en-us/articles/openmp-support-change/">http://software.intel.com/en-us/articles/openmp-support-change/</a>&gt;<br /> <br />The error is caused by multiple OpenMP libraries were linked in same application. For example, you have two mkl versions MKL 10 and MKL 10.2.1 are linked in same appliation. The error arises because of the duplicate initialization of OpenMP Runtime library from MKL 10 which link libguide40 and MKL 10.2.1 which use libiomp5md .<br /><br />Please note, the libguide40.dll sometimes were linked implicitly, e.g. by third-party library, custom dll or by dummy library mkl_c.lib in previous MKL version.<br /><br /><b>Solution:</b></p>
<p>Please remove one of them and keep only one OpenMP runtime library.<br /><br />We recommend using and distributing libiomp5md.dll (located in the \bin directory), as libguide40 will be obsolete. <br /><br />For the third-party library or custom dll which have used the libguide40.dll from pervious  MKL version, in order to avoid such kind of issue, we strongly recommend rebuild your library with libiomp5md.dll.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/omp-error-15-initializing-libguide40dll-but-found-libiomp5mddll-already-initialized</link>
      <pubDate>Mon, 03 Aug 2009 00:45:47 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/omp-error-15-initializing-libguide40dll-but-found-libiomp5mddll-already-initialized#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/omp-error-15-initializing-libguide40dll-but-found-libiomp5mddll-already-initialized</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Compatibility libraries (also known as dummy libraries) no more available</title>
      <description><![CDATA[ Compatibility libraries (also known as "dummy libraries") have been removed from Intel® MKL 10.2 and will not be available in the future versions of Intel® MKL.  Dummy libraries were introduced to provide backward compatibility with earlier version of Intel MKL, which did not use new layered libraries.  Dummy libraries do not contain any functionality, but only dependencies on a set of layered libraries.<br /><br /> Pure layered libraries give more flexibility to choose the appropriate combination of libraries but do not have backward compatibility by library names in link lines. <br /><br />To replace MKL dummy libraries with Pure layered libraris, user can  refer to the table at <a href="http://software.intel.com/en-us/articles/performance-tools-for-software-developers-for-easily-migrating-from-mkl-9x-to-10x/"><b>For easily migrating from Intel® MKL 9.x to 10.x</b></a> <br />or <br />Please refer the Intel MKL linking advisor tool from below url for identifying which pure layered libraries to link from MKL.<br /><a target="_blank" href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/" title="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/">http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/</a><br /><br />The following dummy libraries have been removed from MKL 10.2 onwards.<br /><br /><strong>Intel® MKL for Linux</strong><br /><br />lib\32\libmkl_ia32.a<br />lib\32\libmkl_lapack.a<br />lib\32\libmkl_cdft.a<br />lib\32\libmkl_scalapack.a<br />lib\32\libmkl.so<br /><br />lib\em64t\libmkl_cdft.a<br />lib\em64t\libmkl_em64t.a<br />lib\em64t\libmkl_lapack.a<br />lib\em64t\libmkl_scalapack.a<br />lib\em64t\libmkl.so<br /><br />lib\64\libmkl_cdft.a<br />lib\64\libmkl_ipf.a<br />lib\64\libmkl_lapack.a<br />lib\64\libmkl_scalapack.a<br />lib\64\libmkl_solver.a<br />lib\64\libmkl.so<br /><br /><br /><strong>Intel® MKL for Windows</strong><br /><br />ia32\lib\mkl_c.lib<br />ia32\lib\mkl_s.lib<br />ia32\lib\mkl_lapack.lib<br />ia32\lib\mkl_cdft.lib<br />ia32\lib\mkl_scalapack.lib<br />ia32\lib\mkl_c_dll.lib<br />ia32\lib\mkl_s_dll.lib<br />ia32\lib\mkl_cdft_dll.lib<br /><br />em64t\lib\mkl_em64t.lib<br />em64t\lib\mkl_lapack.lib<br />em64t\lib\mkl_solver.lib<br />em64t\lib\mkl_cdft.lib<br />em64t\lib\mkl_scalapack.lib<br />em64t\lib\mkl_dll.lib<br />em64t\lib\mkl_cdft_dll.lib<br />em64t\lib\mkl_scalapack_dll.lib<br /><br />ia64\lib\mkl_ipf.lib<br />ia64\lib\mkl_lapack.lib<br />ia64\lib\mkl_solver.lib<br />ia64\lib\mkl_cdft.lib<br />ia64\lib\mkl_scalapack.lib<br />ia64\lib\mkl_dll.lib<br />ia64\lib\mkl_cdft_dll.lib<br />ia64\lib\mkl_scalapack_dll ]]></description>
      <link>http://software.intel.com/en-us/articles/dummy-libraries-have-been-removed</link>
      <pubDate>Mon, 22 Jun 2009 22:57:35 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/dummy-libraries-have-been-removed#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/dummy-libraries-have-been-removed</guid>
      <category>ISN General</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Intel® MKL LAPACK 3.2</title>
      <description><![CDATA[ <p>LAPACK 3.2 features have been added to Intel® MKL 10.2. LAPACK 3.2 introduces the following new features as described on netlib.org:</p>
<ul>
<li>Extra Precise Iterative Refinement </li>
<li>Non-Negative Diagonals from Householder QR </li>
<li>High Performance QR and Householder Reflections on Low-Profile Matrices </li>
<li>New fast and accurate Jacobi SVD </li>
<li>Routines for Rectangular Full Packed format </li>
<li>Pivoted Cholesky </li>
<li>Mixed precision iterative refinement routines for exploiting fast single precision hardware </li>
<li>Some new variants added for the one sided factorization </li>
<li>More robust DQDS algorithm</li>
</ul> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-mkl-lapack-32</link>
      <pubDate>Mon, 22 Jun 2009 20:41:18 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-mkl-lapack-32#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-mkl-lapack-32</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Using Intel® MKL in your C# program</title>
      <description><![CDATA[ <br />
<p><strong>Introduction </strong><br /><br />Several users have asked how to call and link the Intel® Math Kernel Library (Intel® MKL) functions from their C# programs. While the standard way of interfacing with third party software libraries from C# is well documented, some of the steps in interfacing with Intel MKL specifically may still be confusing. The attached source code package is intended to show how to navigate the whole process for Intel MKL users. These examples show how to create a DLL from Intel MKL libraries, call those functions from their C# source, and interface with that DLL.<br /><br />Examples are provided for calling the BLAS, LAPACK, DFTI (the FFT interface), the PARDISO direct sparse solver, and the vector math library (VML).<br /><br /><strong>Building the Examples</strong><br /><br />Follow these steps to build the example programs:</p>
<ul>
<li>unzip the contents of the attached zip file</li>
<li>Open a Microsoft Visual Studio command prompt or add the Microsoft.NET Framework to the PATH environment variable in another command prompt</li>
<li>Run the build script (makefile) using nmake 
<ul>
<li>Example: <code>nmake ia32 MKLROOT="c:\program files\intel\mkl\10.1.1.015"</code></li>
<li>The makefile provides further explanation of the parameters in comments</li>
</ul>
</li>
</ul>
<p>This will create an executable for each of the example programs.</p>
<p style="TEXT-ALIGN: left"><br />Example files: <a onclick="ndownload('http://software.intel.com/file/19203')" href="javascript:void(0)">Intel_MKL_C#_Examples.zip</a></p>
<p style="TEXT-ALIGN: center"><br /><br /><em>Take our <a href="http://intelsoftwareproductsurvey.com/survey/149715/1442/" target="_blank">C++/C# interface survey</a> for Intel® Math Kernel Library </em></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/using-intel-mkl-in-your-c-program</link>
      <pubDate>Wed, 27 May 2009 15:31:23 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/using-intel-mkl-in-your-c-program#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/using-intel-mkl-in-your-c-program</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Xeon 5500 (Nehalem) processor optimization in Intel® MKL</title>
      <description><![CDATA[ Intel MKL has been optimized on Intel® Xeon 5500 series and Intel Core™ i7 processors.<br /> <br />The following functions have significant performance improvements for the above processors in Intel MKL 10.1 version <br /><br />• BLAS : <br />       o DGEMM<br />       o SGEMM, DTRSM (64 bit)<br /><br />• VML : <br />       o Asin, Asinh, Acos, Acosh, Atan, Atan2, Atanh, Cbrt, CIS, Cos, Cosh, Conj, Div, ErfInv, Exp, Hypot, Inv, InvCbrt,<br />          InvSqrt, Ln, Log10, MulByConj, Sin, SinCos, Sinh, Sqrt, Tanh. <br /><br />• VSL : <br />       o Uniform Random Number Generators <br />       o VSL distribution generators based on Wichmann-Hill, Sobol, and Niederreiter BRNGs (64-bit only).<br /><br />Intel MKL also has significant performance and efficiency improvements for Linpack benchmark on Intel® Xeon 5500 processors.<br /><br />For more details and performance results, please click "<strong>Performance Improvements and Charts</strong>" from <a href="http://software.intel.com/en-us/intel-mkl/">Intel MKL product site</a>.<br /><br /> ]]></description>
      <link>http://software.intel.com/en-us/articles/mkl-supports-nehalem</link>
      <pubDate>Thu, 02 Apr 2009 11:00:11 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/mkl-supports-nehalem#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/mkl-supports-nehalem</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Intel Architecture Platform Terminology for Development Tools</title>
      <description><![CDATA[ <p>Intel® compilers and libraries support three platforms: general combinations of processor architecture and operating system type. This section explains the terms that Intel uses to describe the platforms in its documentation, installation procedures and support site.  <strong>Note:</strong> not all Intel software development tools support all three platforms.</p>
<p><strong>IA-32 Architecture</strong> refers to systems based on 32-bit processors generally compatible with the Intel Pentium® II processor, (for example, Intel® Pentium® 4 processor or Intel® Xeon® processor), or processors from other manufacturers supporting the same instruction set, running a 32-bit operating system.</p>
<p><strong>Intel® 64 Architecture</strong> (formerly Intel® EM64T)refers to systems based on IA-32 architecture processors which have 64-bit architectural extensions, (for example, Intel® Core™2 processor family), running a 64-bit operating system such as Microsoft Windows Vista* x64 or a Linux* "x86_64" variant. If the system is running a 32-bit  operating system, then IA-32 architecture applies instead. Systems based on AMD* processors running a 64-bit operating system are also supported by Intel compilers for Intel® 64 architecture applications.</p>
<p>64-bit computing on Intel architecture requires a computer system with a processor, chipset, BIOS, operating system, device drivers and applications enabled for Intel® 64 architecture. Performance will vary depending on your hardware and software configurations. Consult with your system vendor for more information.</p>
<p><strong>IA-64 Architecture</strong> refers to systems based on the Intel® Itanium® processor running a 64-bit operating system.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-architecture-platform-terminology</link>
      <pubDate>Thu, 12 Feb 2009 07:48:07 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-architecture-platform-terminology#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-architecture-platform-terminology</guid>
      <category>Software Products General</category>
      <category>Intel® Parallel Advisor</category>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Software Development Tool Suites for Intel® Atom™ Processor Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Windows* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Intel® Parallel Amplifier Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Parallel Inspector Knowledge Base</category>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
      <category>Intel® Thread Profiler for Windows* Knowledge Base</category>
      <category>Intel® Threading Building Blocks Knowledge Base</category>
      <category>Intel® Trace Analyzer and Collector for Linux* Knowledge Base</category>
      <category>Intel® Trace Analyzer and Collector for Windows* Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
  </channel></rss>