<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Wed, 25 Nov 2009 02:14:01 -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/known-issues/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/known-issues/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Known Limitations in Intel® MKL 10.2</title>
      <description><![CDATA[ The following are known issues in the Intel® Math Kernel Library (Intel® MKL) version 10.2 and its updates.<br /><br />
<div class="sectionHeading">Limitations to the BLAS functions</div>
<ul>
<li>In version 10.2 there exist problems with the results from DGEMM, SGEMM, and ZGEMM for very specific input cases and on specific processors. See the <a href="http://software.intel.com/en-us/articles/dgemm-and-sgemm-accuracy/">knowledgebase article</a> for more information.  The problems are fixed in version 10.2 Update 1.</li>
</ul>
<div class="sectionHeading">Limitations to the FFT functions</div>
<ul>
<li>Mode DFTI_TRANSPOSE is implemented only for the default case </li>
<li>Mode DFTI_REAL_STORAGE can have the default value only and cannot be set by the DftiSetValue function (i.e. DFTI_REAL_STORAGE = DFTI_REAL_REAL)</li>
<li>The ILP64 version of Intel® MKL does not currently support FFTs with any one dimension larger than 2^31-1. Any 1D FFT larger than 2^31-1 or any multi-dimensional FFT with any dimension greater than 2^31-1 will return the "DFTI_1D_LENGTH_EXCEEDS_INT32" error message. Note that this does not exclude the possibility of performing multi-dimensional FFTs with more than 2^31-1 elements; as long as any one dimension length does not exceed 2^31-1 </li>
<li>Some limitations exist on arrays sizes for Cluster FFT functions (Windows* and Linux* versions only). See the reference manual (mklman.pdf) for a detailed description.</li>
<li>When a dynamically linked application uses Cluster FFT functionality in the Linux* version, the static Intel® MKL interface libraries are also required on the link line. For example: -Wl,--start-group $MKL_LIB_PATH/libmkl_intel_lp64.a $MKL_LIB_PATH/libmkl_cdft_core.a -Wl,--end-group $MKL_LIB_PATH/libmkl_blacs_intelmpi20_lp64.a -L$MKL_LIB_PATH -lmkl_intel_thread -lmkl_core -liomp5 -lpthread </li>
<li>The negative strides are not been supported by version 10.2 and updates<!--page break--> </li>
</ul>
<br />
<div class="sectionHeading">Limitations to the LAPACK functions:</div>
<ul>
<li>The ILAENV function, which is called from the LAPACK routines to choose problem-dependent parameters for the local environment, can not be replaced by a user's version </li>
<li>second() and dsecnd() functions may not provide correct answers in the case where the CPU frequency is not constant. </li>
<li>As of version 10.0 the following two issues apply when linking to the dynamic libraries:     
<ul>
<li>A user provided XERBLA will not be invoked if LAPACK is called with illegal input parameters. The default XERBLA will be used instead. </li>
<li>A user may encounter a segment violation if they call the LP64 interface to LAPACK with illegal parameters. This is because a request may be made to allocate a negative amount of memory. </li>
</ul>
</li>
</ul>
<p> </p>
<div class="sectionHeading">Limitations to the Vector Math Library (VML) and Vector Statistical Library (VSL) functions:</div>
<ul>
<li>Usage of mkl_vml.fi may produce warning about TYPE ERROR_STRUCTURE length</li>
<li>To create a Windows* DLL that contains references to Intel® MKL functions, the Intel® MKL DLL Builder Tool should be used. Other DLL build techniques are not supported.</li>
</ul>
<p> </p>
<!--page break-->
<div class="sectionHeading">Limitations to the ScaLAPACK functions:</div>
<ul>
<li>The user can not substitute PJLAENV for their own version. This function is called by ScaLAPACK routines to choose problem-dependent parameters for the local environment.</li>
<li>On Windows*, there are possible problems with getting global environment variables such as MKL_BLACS_MPI by -genvlist by MPICH2. In this case, try to set all necessary environment variables by using the control panel. From the System control panel select the "Advanced" tab and click the "Environment Variables" button.</li>
</ul>
<p> </p>
<!--page break-->
<div class="sectionHeading">Limitations to the ILP64 version of Intel® MKL:</div>
<ul>
<li>The ILP64 version of Intel® MKL does not contain the complete functionality of the library. For a full listing of what is in the ILP64 version refer to the user's guide in the doc directory.</li>
<li>g77 can not be used with the ILP64 libraries.</li>
</ul>
<p>The DHPL_CALL_CBLAS option is not allowed when building the hybrid version of MP LINPACK.</p>
<!--page break-->
<div class="sectionHeading"><br />Limitations to the Fortran 95 interface to LAPACK:</div>
<ul>
<li>If you are compiling the Fortran 95 interface to LAPACK with the GNU gfortran compiler, you must manually remove the "pure" attribute from all subroutines containing a procedure argument: ?GEES, ?GEESX, ?GGES, ?GGESX (where ? can be S, D, C, or Z). </li>
</ul>
<p> </p>
<!--page break-->
<div class="sectionHeading">Limitations to the g77 compiler support:</div>
<ul>
<li>Some Intel® MKL functions contain underscore in their names (i.e. mkl_dcsrsymv, mkl_cspblas_dcsrsymv) and these functions don't support the g77 default naming convention. -fno-second-underscore compilation flag can be used as workaround for this limitation. E.g.: g77 -fno-second-underscore test.f</li>
</ul>
<p> </p>
<!--page break-->
<div class="sectionHeading">Limitations with static linking on Intel® MKL for Mac OS* X:</div>
<ul>
<li>To bind with static libraries for the Intel® 64 architecture, you need Xcode* version 2.4.1 as the linkers which come with earlier Xcode* versions fail to bind. This limitation doesn't affect dynamic libraries, nor any IA-32 libraries.</li>
<li>The Intel® MKL versions earlier than 10.2 update 2 are built by the Intel® C++ Compiler which has the incompatibility problem with XCode 3.2 linker on Mac OS X 10.6 ( Snow Leopard) and as a result Mac OS*X 10.6 doesn't work with static version of libraies when Xcode 3.2 but works when Xcode 3.1.2. Please refer to the article "Linking error on MacOSX 10.6 with XCode 3.2" located here <a href="http://software.intel.com/en-us/articles/linking-error-on-macosx-106-with-xcode-32/">http://software.intel.com/en-us/articles/linking-error-on-macosx-106-with-xcode-32/</a> </li>
</ul>
<!--page break-->
<div class="sectionHeading">Linking Intel® MKL for Windows*:</div>
<ul>
<li>Using /MT when linking with multi-threaded Intel® MKL is recommended. Use of /MD with Microsoft* Visual C++* .NET causes linking errors.</li>
</ul>
<p> </p>
<!--page break-->
<div class="sectionHeading">Limitations to the Java examples:</div>
<ul>
<li>The Java examples on the Windows* version won't work if the path to the JDK contains spaces. Please use quotes to set JAVA_HOME in those cases. For example: set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_06"</li>
</ul>
<p> </p>
<p>On Intel® processors with Intel® EM64T enabled, user programs compiled with the GNU Fortran compiler (version 3.2.3) will likely get incorrect results from those functions in Intel® MKL that return single precision values, if -fno-f2c GNU Fortran compiler flag isn't used. The GNU Fortran compiler by default expects REAL*4 values in the first 8 bytes of the return register (just as a double precision value would be represented) while the Intel® Fortran compiler expects REAL*4 values in the first 4 bytes of the return register. The behavior of Intel® MKL is compatible with that of the Intel Fortran compiler. GNU Fortran compiler behavior could be changed to be compatible with the Intel Fortran compiler by using the -fno-f2c flag.</p>
<p>FFT and PDE Support functions can not be called from Fortran-77. These components have Fortran-90/95 interface specifics (structures, ..) that can not be used with Fortran-77.</p>
<p>We recommend that -Od on Linux* or /Od on Windows be used for the 10.0 Intel® compilers when compiling test source code available with Intel® MKL. Current build scripts do not specify this option and default behavior for these compilers has changed to provide vectorization.</p>
<p>All VSL functions return an error status, i.e., default VSL API is a function style now rather than a subroutine style used in earlier Intel® MKL versions. This means that Fortran users should call VSL routines as functions. For example:</p>
<blockquote>errstatus = vslrnggaussian(method, stream, n, r, a, sigma)<br /></blockquote>
<p>rather than subroutines:</p>
<blockquote>call vslrnggaussian(method, stream, n, r, a, sigma)<br /></blockquote>
<p>Nevertheless, Intel® MKL provides a subroutine-style interface for backward compatibility. To use subroutine-style interface, manually include mkl_vsl_subroutine.fi file instead of mkl_vsl.fi by changing the line include 'mkl_vsl.fi' mkl.fi (in the include directory) with the line include 'mkl_vsl_subroutine.fi'. VSL API changes don't affect C/C++ users.</p>
<!--page break-->
<div class="sectionHeading"><br />Memory Allocation:</div>
<p>In order to achieve better performance, memory allocated by Intel® MKL is not released. This behavior is by design and is a one time occurrence for Intel® MKL routines that require workspace memory buffers. Even so, the user should be aware that some tools may report this as a memory leak. Should the user wish, memory can be released by the user program through use of a function MKL_FreeBuffers()) made available in Intel® MKL or memory can be released after each call by setting the environment variable MKL_DISABLE_FAST_MM (see User's Guide in the doc directory for more details). Using one of these methods to release memory will not necessarily stop programs from reporting memory leaks, and in fact may increase the number of such reports should you make multiple calls to the library thereby requiring new allocations with each call. Memory not released by one of the methods described will be released by the system when the program ends. To avoid this restriction disable memory management as described above.</p>
<p>On Red Hat* Enterprise Linux 3.0, in order to ensure that the correct support libraries are linked, the environment variable LD_ASSUME_KERNEL must be set. For example: 'export LD_ASSUME_KERNEL=2.4.1'</p>
<p> </p>
<p> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/known-limitations-in-intel-mkl-10-2</link>
      <pubDate>Fri, 13 Nov 2009 05:33:05 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/known-limitations-in-intel-mkl-10-2#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/known-limitations-in-intel-mkl-10-2</guid>
      <category>Intel® Math Kernel Library 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>Incorrect results for DGEMM and SGEMM</title>
      <description><![CDATA[ <span style="font-family: verdana; line-height: 16px; ">In Intel® MKL 10.1 Update 1, 10.1 Update 2, and 10.2 DGEMM and SGEMM produce incorrect results for 32-bit programs when running on an Intel® Core™ i7 processor or Intel® Xeon® processor 5400, 5500 series. The incorrect results occur for input matrices for which all the following conditions are true:</span> <span style="line-height: 16px;">
<div style="padding-left: 30px;">
<ul>
<li>M &gt; 2 for DGEMM or M &gt; 4 for SGEMM</li>
<li>N &gt; 1537 for DGEMM or N &gt; 3074 for SGEMM</li>
<li>K &gt; 256 and not divisible by 256</li>
<em>Fixed in versions 10.1 Update 3 and 10.2 Update 1</em> 
</ul>
</div>
</span>In Intel® MKL 10.1, 10.1 Update 1, 10.1 Update 2, and 10.2 SGEMM produces incorrect results for 64-bit programs when running on an Intel® Xeon® processor 5400, 5500 series. The incorrect results occur for input matrices for which all the following conditions are true:
<div style="padding-left: 30px;"><span style="line-height: 16px;">
<ul>
<li>Matrix A is transposed (TN, TT cases)</li>
<li>N &gt; 2048 </li>
<li>K &gt; 256 </li>
<em>Fixed in versions 10.1 Update 3 and 10.2 Update 1</em> 
</ul>
</span></div>
In Intel® MKL versions 10.1 Updates 1, 2, and 3, and 10.2 ZGEMM produces incorrect results when all the following conditions are met:
<div style="padding-left: 30px;"><span style="line-height: 16px;">
<ul>
<li>Program running on systems with processors from the Intel® Core™2 processor family or on Intel® Xeon® processor 5300 series </li>
<li>Input matrices meet all the following conditions: 
<ul>
<li>K &lt; 224 </li>
<li>K is odd </li>
<li>K * M &gt; 56320 for single threaded runs or K * M &gt; 56320 *2 for multi-threaded runs Matrix A is transposed (TN, TT cases)</li>
<em>Fixed in version 10.2 Update 1</em> 
</ul>
</li>
</ul>
</span></div>
Those that have version 10.2 on CD are encouraged to download the Update 1 at the <a href="http://registrationcenter.intel.com">Intel® Registration Center</a>. For questions, contact <a href="http://premier.intel.com">Intel® Premier Support</a>. ]]></description>
      <link>http://software.intel.com/en-us/articles/dgemm-and-sgemm-accuracy</link>
      <pubDate>Thu, 30 Jul 2009 07:45:42 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/dgemm-and-sgemm-accuracy#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/dgemm-and-sgemm-accuracy</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>OMP abort: Initializing libguide.lib, but found libguide40.lib already</title>
      <description><![CDATA[ <!--CTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dt--> 
<table border="0" cellpadding="0" cellspacing="15">
<tbody>
<tr>
<td class="bodycopy">
<p><b>Symptom(s):</b><br /><b>OMP abort: Initializing libguide.lib, but found libguide40.lib already initialized.</b></p>
<p>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:</b></p>
<p style="text-align: justify;"><b>mkl_c.lib</b> is one of mkl static library interface. It defines <b>libguide.lib</b> as a default library for resolution of threading library calls. But other Intel® software such as Intel® IPP, Intel® C++ Compiler and Intel® OpenCV defined <b>libguid40.lib</b> as default. So the error arises because of the duplicate initialization of <b>libguide.lib</b> when using static MKL library and other Intel software at the same time.</p>
<p><b>Solution:</b></p>
<p style="text-align: justify;">You could use linker switch <b>/nodefaultlib:libguide.lib</b> and link with <b>libguide40.lib</b> by adding the option to the link line or in project option.</p>
<p style="text-align: justify;">For example, link <b>users.obj mkl_c.lib /nodefaultlib:libguide.lib libguide40.lib</b>. This will stop <b>mkl_c.lib</b> from defining <b>libguide.lib</b> as a default library for resolution of threading library calls.</p>
<p><b>Operating System:</b></p>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="xs">Windows* XP Professional, Windows* XP Home Edition, Windows* XP Tablet PC Edition, Windows* XP Media Center Edition</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td><img src="http://software.intel.com/file/6324" height="5" width="388" /></td>
</tr>
<tr>
<td height="10"></td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/performance-tools-for-software-developers-omp-abort-initializing-libguidelib-but-found-libguide40lib-already</link>
      <pubDate>Tue, 07 Jul 2009 22:20:25 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/performance-tools-for-software-developers-omp-abort-initializing-libguidelib-but-found-libguide40lib-already#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/performance-tools-for-software-developers-omp-abort-initializing-libguidelib-but-found-libguide40lib-already</guid>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Boxed Product Packages NOT Updated All </title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><strong>Q: </strong><br />I have purchased some software products with boxed edition. However, I find their packages are not the same as what they look like from <a target="_blank" href="http://sx.intel.com/">Intel® Business Exchange software download store</a>. Did I purchase wrong/old products?<br /><br /><strong>A: <br /></strong>No, you didn't. I believe you have purchased the right product and the latest version. We are sorry to get you confused. <br />This is because not all of the packages have been updated for the boxed edition at the same time. <br /><br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/packages-not-updated</link>
      <pubDate>Fri, 15 May 2009 00:05:29 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/packages-not-updated#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/packages-not-updated</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Windows* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Intel® Software Development Products Registration Center Knowledge Base</category>
      <category>Intel® Thread Checker for Linux* Knowledge Base</category>
      <category>Intel® Thread Checker for Windows* Knowledge Base</category>
      <category>Intel® Thread Profiler for Windows* Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
      <category>Intel® VTune™ Performance Analyzer for Linux* Knowledge Base</category>
      <category>Intel® VTune™ Performance Analyzer for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Known limitations for the Intel® Math Kernel Library for Windows* 10.0 Update 2</title>
      <description><![CDATA[ <table border="0" cellspacing="15" cellpadding="0">
<tbody>
<tr>
<td class="bodycopy">
<p><strong>Limitations to dummy libraries in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>Dummy libraries cannot be used in #pragma constructions. Dummy libraries cannot be linked by Intel compiler as a driver. Please see Chapter 3 of User's Guide for more information</li>
</ul>
<p><strong>Limitations to the sparse solver and optimization solvers in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>Sparse and optimization solver libraries functions are only provided in static form</li>
</ul>
<p><strong>Limitations to the FFT functions in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>The function DftiCopyDescriptor is not implemented</li>
<li>Mode DFTI_TRANSPOSE is implemented only for the default case</li>
<li>Mode DFTI_REAL_STORAGE can have the default value only and is not changeable by the DftiSetValue function (i.e. DFTI_REAL_STORAGE = DFTI_REAL_REAL)</li>
<li>The ILP64 version of Intel® MKL does not currently support FFTs with any one dimension larger than 2 <sup>31</sup>-1. Any 1D FFT larger than 2 <sup>31</sup>-1 or any multi-dimensional FFT with any dimension greater than 2 <sup>31</sup>-1 will return the "DFTI_1D_LENGTH_EXCEEDS_INT32" error message. Note that this does not exclude the possibility of performing multi-dimensional FFTs with more than 2 <sup>31</sup>-1 elements; as long as any one dimension length does not exceed 2 <sup>31</sup>-1</li>
<li>Some limitations exist on arrays sizes for Cluster FFT functions. See mklman.pdf for a detailed description</li>
<li>When a dynamically linked application uses Cluster FFT functionality, it is required to put the static Intel® MKL interface libraries on the link line as well. For example: -Wl,--start-group $MKL_LIB_PATH/libmkl_intel_lp64.a $MKL_LIB_PATH/libmkl_cdft_core.a -Wl,--end-group $MKL_LIB_PATH/libmkl_blacs_intelmpi20_lp64.a -L$MKL_LIB_PATH -lmkl_intel_thread -lmkl_core -lguide -lpthread</li>
</ul>
<p><strong>Limitations to the LAPACK functions in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>The ILAENV function, which is called from the LAPACK routines to choose problem-dependent parameters for the local environment, can not be replaced by a user's version</li>
<li>second() and dsecond() functions may not provide correct answers in the case where the CPU frequency is not constant.</li>
</ul>
<p><strong>Limitations to the Vector Math Library (VML) and Vector Statistical Library (VSL) functions in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>Usage of mkl_vml.fi may produce warning about TYPE ERROR_STRUCTURE length</li>
<li>Static Intel® MKL library cannot be linked in case of VML and/or VSL functions usage from shared library</li>
<li>In case user needs to build custom DLL that contains references to Intel® MKL functions, the Intel® MKL DLL Builder Tool should be used. Other DLL build techniques are not supported </li>
</ul>
<p><strong>Limitations to the interval arithmetic functions in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>The interval libraries will require the libifcore library from Intel® Fortran compiler.</li>
<li>Interval arithmetic functions require a processor which supports SSE instructions.</li>
</ul>
<p><strong>Limitations to the ScaLAPACK functions in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>The user can not substitute PJLAENV for their own version. This function is called by ScaLAPACK routines to choose problem-dependent parameters for the local environment.</li>
<li>There are possible problems with getting global environment variables such as MKL_BLACS_MPI by -genvlist by MPICH2. In this case, try to set all necessary environment variables by using the control panel. From the System control panel select the "Advanced" tab and click the "Environment Variables" button.</li>
</ul>
<p><strong>Limitations to the ILP64 version of Intel® MKL:</strong></p>
<ul>
<li>The ILP64 version of Intel® MKL does not contain the complete functionality of the library. For a full listing of what is in the ILP64 version refer to the user's guide in the doc directory.</li>
</ul>
<p><strong>Limitations to the Java examples:</strong></p>
<ul>
<li>The Java examples don't work with static Intel® MKL libraries. Please use the dynamic Intel® MKL libraries for running the Java examples</li>
</ul>
<p>We recommend that /Od be used for the 10.0 Intel® compilers when compiling test source code available with Intel® MKL. Current build scripts do not specify this option and default behavior for these compilers has changed to provide vectorization.</p>
<p>All VSL functions return an error status, i.e., default VSL API is a function style now rather than a subroutine style used in earlier Intel® MKL versions. This means that Fortran users should call VSL routines as functions. For example:</p>
<blockquote>errstatus = vslrnggaussian(method, stream, n, r, a, sigma) <br />rather than subroutines: <br />call vslrnggaussian(method, stream, n, r, a, sigma)<br /></blockquote>
<p>Nevertheless, Intel® MKL provides a subroutine-style interface for backward compatibility. To use subroutine-style interface, manually include mkl_vsl_subroutine.fi file instead of mkl_vsl.fi by changing the line include 'mkl_vsl.fi' in includemkl.fi with the line include 'mkl_vsl_subroutine.fi'. VSL API changes don't affect C/C++ users.</p>
<p>Hyper-Threading Technology (HT Technology) is especially effective when each thread is performing different types of operations and when there are under-utilized resources on the processor. Intel® MKL fits neither of these criteria as the threaded portions of the library execute at high efficiencies (using most of the available resources) and perform identical operations on each thread. You may obtain higher performance when using Intel® MKL without HT Technology enabled.</p>
<p>Memory Allocation: In order to achieve better performance, memory allocated by Intel® MKL is not released. This behavior is by design and is a one time occurrence for Intel® MKL routines that require workspace memory buffers. Even so, the user should be aware that some tools may report this as a memory leak. Should the user wish, memory can be released by the user program through use of a function ( <code>MKL_FreeBuffers</code><code>(</code><code>)</code>) made available in Intel® MKL or memory can be released after each call by setting an environment variable ( <code>MKL_DISABLE_FAST_MM</code> ) (see User's Guide in the <code>doc</code> directory for more details). Using one of these methods to release memory will not necessarily stop programs from reporting memory leaks, and in fact may increase the number of such reports should you make multiple calls to the library thereby requiring new allocations with each call. Memory not released by one of the methods described will be released by the system when the program ends. To avoid this restriction disable memory management as described above.</p>
<p>Other: GMP and Interval Solver components are located in the solver library. For Intel® 64 and IA-64 platforms these components support only LP64 interface.</p>
<p><strong>Operating System:</strong></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="xs">Windows* XP Professional x64 Edition, Windows Server* 2003 Standard x64 Edition, Windows Server* 2003 Enterprise x64 Edition, Longhorn Beta 1, Windows* Storage Server, Windows Vista*, Windows Server* 2003 for Itanium-based Systems, Windows* XP Starter Edition, Windows* 98, Windows* 98 SE, Windows* 2000, Windows* Me, Windows NT* 3.51, Windows NT* 4.0, Windows NT* Terminal Server, Windows* XP 64-Bit Edition, Windows* XP Professional, Windows* XP Home Edition, Windows NT* Embedded 4.0, Windows* XP Tablet PC Edition, Windows Server* 2003, Windows* XP Media Center Edition, Windows* 2000 Server, Windows* 2000 Advanced Server, Windows Server* 2003 Standard Edition, Windows* XP 64-Bit Edition Version 2003</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><img src="http://software.intel.com/file/6324" alt="" width="388" height="5" /></td>
</tr>
<tr>
<td height="10"> </td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-windows-known-limitations-for-the-intel-math-kernel-library-for-windows-100-update-2</link>
      <pubDate>Mon, 27 Oct 2008 15:00:34 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-windows-known-limitations-for-the-intel-math-kernel-library-for-windows-100-update-2#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-windows-known-limitations-for-the-intel-math-kernel-library-for-windows-100-update-2</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Known limitations for the Intel® Math Kernel Library for Mac OS* X 10.0 Update 2</title>
      <description><![CDATA[ <!--CTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dt-->
<table border="0" cellspacing="15" cellpadding="0">
<tbody>
<tr>
<td class="bodycopy">
<p>Limitations to the sparse solver and optimization solvers in Intel® MKL 10.0 Update 2:</p>
<ul>
<li>Sparse and optimization solver libraries functions are only provided in static form</li>
</ul>
<p>Limitations to the FFT functions in Intel MKL 10.0 Update 2:</p>
<ul>
<li>The function DftiCopyDescriptor is not implemented</li>
<li>Mode DFTI_TRANSPOSE is implemented only for the default case</li>
<li>Mode DFTI_REAL_STORAGE can have the default value only and is not changeable by the DftiSetValue function (i.e. DFTI_REAL_STORAGE = DFTI_REAL_REAL)</li>
<li>The ILP64 version of Intel MKL does not currently support FFTs with any one dimension larger than 2 <sup>31</sup>-1. Any 1D FFT larger than 2 <sup>31</sup>-1 or any multi-dimensional FFT with any dimension greater than 2 <sup>31</sup>-1 will return the "DFTI_1D_LENGTH_EXCEEDS_INT32" error message. Note that this does not exclude the possibility of performing multi-dimensional FFTs with more than 2 <sup>31</sup>-1 elements; as long as any one dimension length does not exceed 2 <sup>31</sup>-1</li>
</ul>
<p>Limitations to the LAPACK functions in Intel MKL 10.0 Update 2:</p>
<ul>
<li>The ILAENV function, which is called from the LAPACK routines to choose problem-dependent parameters for the local environment, can not be replaced by a user's version</li>
<li>second() and dsecond() functions may not provide correct answers in the case where the CPU frequency is not constant.</li>
</ul>
<p>Limitations to the interval arithmetic functions in Intel MKL 10.0 Update 2:</p>
<ul>
<li>The interval libraries will require the libifcore library from Intel® Fortran compiler.</li>
<li>Interval arithmetic functions require a processor which supports SSE instructions.</li>
</ul>
<p>Limitations to static Intel® MKL libraries for systems with Intel® EM64T:</p>
<ul>
<li>To bind with static Intel® MKL libraries for EM64T, you need Xcode* version 2.4.1 as the linker which comes with older Xcode* versions fails to bind. This limitation doesn't affect dynamic libraries for Intel® EM64T or libraries (dynamic or static) for IA-32.</li>
</ul>
<p>FFT, VML, VSL, and PDE Support functions can not be called from Fortran 77. These components have Fortran 90/95 interface specifics (structures, ..) that can not be used with Fortran 77.</p>
<p>We recommend that -Od be used for the 10.0 Intel® compilers when compiling test source code available with Intel MKL. Current build scripts do not specify this option and default behavior for these compilers has changed to provide vectorization.</p>
<p>All VSL functions return an error status, i.e., default VSL API is a function style now rather than a subroutine style used in earlier Intel MKL versions. This means that Fortran users should call VSL routines as functions. For example:</p>
<blockquote>  errstatus = vslrnggaussian(method, stream, n, r, a, sigma) <br /><br />rather than subroutines: <br /><br />  call vslrnggaussian(method, stream, n, r, a, sigma)</blockquote>
<p>Nevertheless, Intel MKL provides a subroutine-style interface for backward compatibility. To use subroutine-style interface, manually include mkl_vsl_subroutine.fi file instead of mkl_vsl.fi by changing the line include 'mkl_vsl.fi' in includemkl.fi with the line include 'mkl_vsl_subroutine.fi'. VSL API changes don't affect C/C++ users.</p>
<p><strong>Memory Allocation:</strong> In order to achieve better performance, memory allocated by Intel MKL is not released. This behavior is by design and is a one time occurrence for Intel MKL routines that require workspace memory buffers. Even so, the user should be aware that some tools may report this as a memory leak. Should the user wish, memory can be released by the user program through use of a function ( <code>MKL_FreeBuffers</code><code>(</code><code>)</code>) made available in Intel MKL or memory can be released after each call by setting an environment variable ( <code>MKL_DISABLE_FAST_MM</code>) (see User's Guide in the <code>doc</code> directory for more details). Using one of these methods to release memory will not necessarily stop programs from reporting memory leaks, and in fact may increase the number of such reports should you make multiple calls to the library thereby requiring new allocations with each call. Memory not released by one of the methods described will be released by the system when the program ends. To avoid this restriction disable memory management as described above.</p>
<p><strong>Other:</strong> GMP and Interval Solver components are located in the solver library. For Intel® 64 platform these components support only LP64 interface.</p>
<p><strong>Operating System:</strong></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="xs">Mac OS*</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><img src="http://software.intel.com/file/6324" alt="" width="388" height="5" /></td>
</tr>
<tr>
<td height="10"> </td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-math-kernel-library-for-mac-os-known-limitations-for-the-intel-math-kernel-library-for-mac-os-x-100-update-2</link>
      <pubDate>Thu, 02 Oct 2008 15:59:10 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-math-kernel-library-for-mac-os-known-limitations-for-the-intel-math-kernel-library-for-mac-os-x-100-update-2#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-math-kernel-library-for-mac-os-known-limitations-for-the-intel-math-kernel-library-for-mac-os-x-100-update-2</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Known limitations for the Intel® Math Kernel Library for Linux* 10.0 Update 2</title>
      <description><![CDATA[ <!--CTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dt-->
<table border="0" cellspacing="15" cellpadding="0">
<tbody>
<tr>
<td class="bodycopy">
<p><strong>Limitations to the sparse solver and optimization solvers in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>Sparse and optimization solver libraries functions are only provided in static form</li>
</ul>
<p><strong>Limitations to the FFT functions in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>The function DftiCopyDescriptor is not implemented</li>
<li>Mode DFTI_TRANSPOSE is implemented only for the default case</li>
<li>Mode DFTI_REAL_STORAGE can have the default value only and is not changeable by the DftiSetValue function (i.e. DFTI_REAL_STORAGE = DFTI_REAL_REAL)</li>
<li>The ILP64 version of Intel® MKL does not currently support FFTs with any one dimension larger than 2 <sup>31</sup>-1. Any 1D FFT larger than 2 <sup>31</sup>-1 or any multi-dimensional FFT with any dimension greater than 2 <sup>31</sup>-1 will return the "DFTI_1D_LENGTH_EXCEEDS_INT32" error message. Note that this does not exclude the possibility of performing multi-dimensional FFTs with more than 2 <sup>31</sup>-1 elements; as long as any one dimension length does not exceed 2 <sup>31</sup>-1</li>
<li>Some limitations exist on arrays sizes for Cluster FFT functions. See mklman.pdf for a detailed description</li>
<li>When a dynamically linked application uses Cluster FFT functionality, it is required to put the static Intel® MKL interface libraries on the link line as well. For example: -Wl,--start-group $MKL_LIB_PATH/libmkl_intel_lp64.a $MKL_LIB_PATH/libmkl_cdft_core.a -Wl,--end-group $MKL_LIB_PATH/libmkl_blacs_intelmpi20_lp64.a -L$MKL_LIB_PATH -lmkl_intel_thread -lmkl_core -lguide -lpthread</li>
</ul>
<p><strong>Limitations to the LAPACK functions in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>The ILAENV function, which is called from the LAPACK routines to choose problem-dependent parameters for the local environment, can not be replaced by a user's version</li>
<li>second() and dsecond() functions may not provide correct answers in the case where the CPU frequency is not constant.</li>
</ul>
<p><strong>Limitations to the Vector Math Library (VML) and Vector Statistical Library (VSL) functions in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>Usage of mkl_vml.fi may produce warning about TYPE ERROR_STRUCTURE length</li>
</ul>
<p><strong>Limitations to the interval arithmetic functions in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>The interval libraries will require the libifcore library from Intel® Fortran compiler.</li>
<li>Interval arithmetic functions require a processor which supports SSE instructions.</li>
</ul>
<p><strong>Limitations to the ScaLAPACK functions in Intel® MKL 10.0 Update 2:</strong></p>
<ul>
<li>The user can not substitute PJLAENV for their own version. This function is called by ScaLAPACK routines to choose problem-dependent parameters for the local environment.</li>
<li>ScaLAPACK libraries are available only in static form</li>
</ul>
<p><strong>Limitations to the ILP64 version of Intel® MKL:</strong></p>
<ul>
<li>The ILP64 version of Intel® MKL does not contain the complete functionality of the library. For a full listing of what is in the ILP64 version refer to the user's guide in the doc directory.</li>
<li>g77 can not be used with the ILP64 libraries.</li>
</ul>
<p><strong>Limitations to the Java examples:</strong></p>
<ul>
<li>The Java examples don’t work with static Intel® MKL libraries. Please use the dynamic Intel® MKL libraries for running the Java examples</li>
</ul>
<p><strong>Limitations to the Fortran 95 interface to LAPACK:</strong></p>
<ul>
<li>If you are compiling the Fortran 95 interface to LAPACK with the GNU gfortran compiler, you must manually remove the "pure" attribute from all subroutines containing a procedure argument: ?GEES, ?GEESX, ?GGES, ?GGESX (where ? can be S, D, C, or Z).</li>
</ul>
<p><strong>Limitations to the g77 compiler support:</strong></p>
<ul>
<li>Some Intel® MKL functions contain underscore in their names (i.e. mkl_dcsrsymv, mkl_cspblas_dcsrsymv) and these functions don't support the g77 default naming convention. -fno-second-underscore compilation flag can be used as workaround for this limitation.  For example: g77 -fno-second-underscore test.f</li>
</ul>
<p>On Intel® processors with Intel® EM64T enabled, user programs compiled with the GNU Fortran compiler (version 3.2.3) will likely get incorrect results from those functions in Intel® MKL that return single precision values, if -fno-f2c GNU Fortran compiler flag isn't used. The GNU Fortran compiler by default expects REAL*4 values in the first 8 bytes of the return register (just as a double precision value would be represented) while the Intel® Fortran compiler expects REAL*4 values in the first 4 bytes of the return register. The behavior of Intel® MKL is compatible with that of the Intel Fortran compiler. GNU Fortran compiler behavior could be changed to be compatible with the Intel Fortran compiler by using the -fno-f2c flag.</p>
<p>FFT, VML, VSL, and PDE Support functions can not be called from Fortran-77. These components have Fortran 90/95 interface specifics (structures, ..) that can not be used with Fortran 77.</p>
<p>We recommend that -Od be used for the 10.0 Intel® compilers when compiling test source code available with Intel® MKL. Current build scripts do not specify this option and default behavior for these compilers has changed to provide vectorization.</p>
<p>All VSL functions return an error status, i.e., default VSL API is a function style now rather than a subroutine style used in earlier Intel® MKL versions. This means that Fortran users should call VSL routines as functions. For example:</p>
<blockquote>   errstatus = vslrnggaussian(method, stream, n, r, a, sigma) <br />rather than subroutines:  <br />   call vslrnggaussian(method, stream, n, r, a, sigma) </blockquote>
<p>Nevertheless, Intel® MKL provides a subroutine-style interface for backward compatibility. To use subroutine-style interface, manually include mkl_vsl_subroutine.fi file instead of mkl_vsl.fi by changing the line include 'mkl_vsl.fi' in includemkl.fi with the line include 'mkl_vsl_subroutine.fi'. VSL API changes don't affect C/C++ users.</p>
<p>Hyper-Threading Technology (HT Technology) is especially effective when each thread is performing different types of operations and when there are under-utilized resources on the processor. Intel® MKL fits neither of these criteria as the threaded portions of the library execute at high efficiencies (using most of the available resources) and perform identical operations on each thread. You may obtain higher performance when using Intel® MKL without HT Technology enabled.</p>
<p><strong>Memory Allocation:</strong> In order to achieve better performance, memory allocated by Intel® MKL is not released. This behavior is by design and is a one time occurrence for Intel® MKL routines that require workspace memory buffers. Even so, the user should be aware that some tools may report this as a memory leak. Should the user wish, memory can be released by the user program through use of a function ( <code>MKL_FreeBuffers</code><code>(</code><code>)</code>) made available in Intel® MKL or memory can be released after each call by setting an environment variable ( <code>MKL_DISABLE_FAST_MM</code>) (see User's Guide in the <code>doc</code> directory for more details). Using one of these methods to release memory will not necessarily stop programs from reporting memory leaks, and in fact may increase the number of such reports should you make multiple calls to the library thereby requiring new allocations with each call. Memory not released by one of the methods described will be released by the system when the program ends. To avoid this restriction disable memory management as described above.</p>
<p>On Red Hat* Enterprise Linux 3.0, in order to ensure that the correct support libraries are linked, the environment variable LD_ASSUME_KERNEL must be set.  For example: 'export LD_ASSUME_KERNEL=2.4.1'</p>
<p><strong>Other:</strong> GMP and Interval Solver components are located in the solver library. For Intel® 64 and IA-64 platforms these components support only LP64 interface.</p>
<p><strong>Operating System:</strong></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="xs">Red Hat* Linux, SUSE* Linux</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><img src="http://software.intel.com/file/6324" alt="" width="388" height="5" /></td>
</tr>
<tr>
<td height="10"> </td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-linux-known-limitations-for-the-intel-math-kernel-library-for-linux-100-update-2</link>
      <pubDate>Thu, 02 Oct 2008 15:48:29 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-linux-known-limitations-for-the-intel-math-kernel-library-for-linux-100-update-2#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-linux-known-limitations-for-the-intel-math-kernel-library-for-linux-100-update-2</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Adding shared libraries environment path / common runtime errors</title>
      <description><![CDATA[ <!--CTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dt-->
<table border="0" cellspacing="15" cellpadding="0">
<tbody>
<tr>
<td class="bodycopy">
<p>Compile example:</p>
<blockquote>gcc -o foo foo.c -I/opt/intel/mkl/10.1.0.015/include <br />-L/opt/intel/mkl/10.1.0.015/lib/32 -lmkl_intel ... &lt;other MKL libs&gt;</blockquote>
Results in runtime error when loading shared libraries during execution: <br />
<blockquote>
<p>./foo: error while loading shared libraries</p>
<p>libmkl_intel.so: cannot open shared object file</p>
<p>No such file or directory</p>
</blockquote>
<p>Before using the Intel® MKL shared libraries, update the system variable LD_LIBRARY_PATH to include the libraries location. For example, if the Intel MKL libraries are in the /opt/intel/mkl/10.1.0.015/lib/32 directory then the following command line can be used (assuming a bash shell):</p>
<blockquote>export LD_LIBRARY_PATH=/opt/intel/mkl/10.1.0.015/lib/32:$LD_LIBRARY_PATH</blockquote>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><img src="http://software.intel.com/file/6324" alt="" width="388" height="5" /></td>
</tr>
<tr>
<td height="10"> </td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-linux-adding-shared-libraries-environment-path-common-runtime-errors</link>
      <pubDate>Fri, 19 Sep 2008 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-linux-adding-shared-libraries-environment-path-common-runtime-errors#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-linux-adding-shared-libraries-environment-path-common-runtime-errors</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Errors linking Intel® compilers with Intel® MKL 10.x </title>
      <description><![CDATA[ <table border="0" cellpadding="0" cellspacing="15">
<tbody>
<tr>
<td class="bodycopy">
<p><b>Symptoms</b></p>
<p>When building with Intel® Math Kernel Library for Windows* version 10.0 using the xilink linker from the command line or within the Microsoft Visual Studio* IDE, the following error messages may occur:</p>
<blockquote>Severe: **Internal compiler error: internal abort** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error. <br />Link: error error_during_IPO_compilation: problem during multi-file optimization compilation (code 3) <br />Link: error error_during_IPO_compilation: problem during multi-file optimization compilation (code 3) or(0): internal error: backend signals <br />xilink: error error_during_IPO_compilation: problem during multi-file optimization compilation (code 4) <br />xilink: error error_during_IPO_compilation: problem during multi-file optimization compilation (code 4)</blockquote>
<p>When using the Intel® C++ Compiler for Windows*, these errors have occurred when the /Qipo compiler option is used with the xilink linker from the command line.</p>
<p>When using the Intel® Visual Fortran Compiler for Windows*, these errors have occurred when building within the Visual Studio IDE, which uses the xlink linker.</p>
<p><b>Solution</b></p>
<p>Intel® Math Kernel Library for Windows version 10.0 introduced new library naming conventions, with "dummy lib" references to the older Intel® MKL libraries. However, there is a format problem with the Intel MKL "dummy libs" files that is causing problems for the Intel xilink tool. Correct the problem by modifying link information for the command line or the Visual Studio link information to specify the new names of the 10.0 Intel MKL libraries.</p>
<p><b>Linking from the Command Line</b></p>
<p>When link errors occur, correct the problem by replacing references to the Intel MKL dummy libraries on the link command with explicit references to the libraries listed in the dummy libraries. See the explicit Intel MKL library references listed below.</p>
<p><b>Linking from within Microsoft Visual Studio</b></p>
<p>In the Visual Studio IDE, replace the references to the dummy libraries in Project » Configuration Properties » Linker &amp;» Input » Additional Dependencies. See the explicit Intel MKL library references listed below.</p>
<blockquote><b><span style="text-decoration: underline;">For IA-32 Compilers</span></b> 
<table border="0" cellpadding="0" cellspacing="15">
<tbody>
<tr>
<td bgcolor="#a6a6a6">
<table border="0" cellpadding="5" cellspacing="1">
<tbody>
<tr>
<td class="bodycopy" bgcolor="#efefef"><b>Intel MKL dummy library</b></td>
<td class="bodycopy" bgcolor="#efefef"><b>Replace with explicit Intel MKL library references</b></td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_c_dll.lib</td>
<td class="b odycopy" bgcolor="#ffffff">mkl_intel_c_dll.lib mkl_intel_thread_dll.lib mkl_core_dll.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_s_dll.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_intel_s_dll.lib mkl_intel_thread_dll.lib mkl_core_dll.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_c.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_s.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_intel_s.lib mkl_intel_thread.lib mkl_core.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_scalapack_dll.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_scalapack_core_dll.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_scalapack.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_scalapack_core.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_cdft_dll.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_cdft_core_dll.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_cdft.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_cdft_core.lib</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<b><span style="text-decoration: underline;">For Intel® 64 Compilers</span></b> 
<table border="0" cellpadding="0" cellspacing="15">
<tbody>
<tr>
<td bgcolor="#a6a6a6">
<table border="0" cellpadding="5" cellspacing="1">
<tbody>
<tr>
<td class="bodycopy" bgcolor="#efefef"><b>Intel MKL dummy library</b></td>
<td class="bodycopy" bgcolor="#efefef"><b>Replace with explicit Intel MKL library references</b></td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_dll.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_intel_lp64_dll.lib mkl_intel_thread_dll.lib mkl_core_dll.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_em64t.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_scalapack_dll.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_scalapack_lp64_dll.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_scalapack.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_scalapack_lp64.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_solver.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_solver_lp64.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_cdft_dll.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_cdft_core_dll.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_cdft.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_cdft_core.lib</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<b><span style="text-decoration: underline;">For IA-64 [Intel® Itanium®] Compilers</span></b> 
<table border="0" cellpadding="0" cellspacing="15">
<tbody>
<tr>
<td bgcolor="#a6a6a6">
<table border="0" cellpadding="5" cellspacing="1">
<tbody>
<tr>
<td class="bodycopy" bgcolor="#efefef"><b>Intel MKL dummy library</b></td>
<td class="bodycopy" bgcolor="#efefef"><b>Replace with explicit Intel MKL library references</b></td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_dll.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_intel_lp64_dll.lib mkl_intel_thread_dll.lib mkl_core_dll.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_ipf.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_scalapack_dll.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_scalapack_lp64_dll.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_scalapack.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_scalapack_lp64.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_solver.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_solver_lp64.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_cdft_dll.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_cdft_core_dll.lib</td>
</tr>
<tr>
<td class="bodycopy" bgcolor="#ffffff">mkl_cdft.lib</td>
<td class="bodycopy" bgcolor="#ffffff">mkl_cdft_core.lib</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</blockquote>
</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td><img src="http://software.intel.com/file/6324" height="5" width="388" /></td>
</tr>
<tr>
<td height="10"></td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/performance-tools-for-software-developers-errors-linking-intel-compilers-with-intel-mkl-10x-dummy-libs</link>
      <pubDate>Fri, 19 Sep 2008 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/performance-tools-for-software-developers-errors-linking-intel-compilers-with-intel-mkl-10x-dummy-libs#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/performance-tools-for-software-developers-errors-linking-intel-compilers-with-intel-mkl-10x-dummy-libs</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
  </channel></rss>