<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Tue, 24 Nov 2009 20:16:20 -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/errors-diagnostics/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/errors-diagnostics/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>dyld:Library not loaded:libiomp5.dylib</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Problem : </b><br />
<p>Build a mkl program on Mac OS with Intel fortran compiler, <br /><br />For example, m_cprof_p_11.1.076, <br />MKLPATH=/opt/intel/Compiler/11.1/076/Frameworks/mkl/lib/em64t<br />MKLINCLUDE=opt/intel/Compiler/11.1/076/Frameworks/mkl/include<br />&gt; ifort  main. f -o  main -L$(MKLPATH) -I$(MKLINCLUDE) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core  -lpthread </p>
get compiler warning: <br />ld64 warning: indirect library libiomp5.dylib could not be loaded: file not found: libiomp5.dylib<br /><br />Or runtime error:<br />dyld: Library not loaded: libiomp5.dylib<br />  Referenced from: /opt/intel/Compiler/11.1/076/Frameworks/mkl/lib/em64t/libmkl_intel_thread.dylib<br />  Reason: image not found<br />Trace/BPT trap<br /><br /><br /><b>Root Cause : </b><br />Since MKL 10.0, MKL libraries for Mac OS* was integrated to Intel® C++/Fortran Compiler Professional Edition. The default path of MKL libraries were changed from <br />"/Library/Frameworks/Intel_MKL.framework/Versions/10.0.x.xxx/"   <br />to "/opt/intel/Compiler/11.x/0xx/Frameworks/mkl/"  <br /><br />At the same time, the default OpenMP library (libiomp5.dylib, libiomp5.a) used by MKL are not in &lt;MKL Libraries&gt;/lib directory as previous versions. They are  under Intel compiler lib directory now. <br />for example,  in /opt/intel/Compiler/11.0/0xx/lib<br /><br />(IPP is same, please see the article <a href="http://software.intel.com/en-us/articles/xcode-link-error-file-not-found-libiomp5dylib/">XCode link error: "file not found: libiomp5.dylib"</a> )<br /><br /><b>Resolution : </b><br />For compiler warning, <br />Please refer to the <a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/">MKL link line advisor</a> <br />the command line could be <br />&gt;ifort  main. f -o  main -L$(MKLPATH) -I$(MKLINCLUDE) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core <strong>-openmp</strong> -lpthread <br /><br />or <br />ifort  main. f -o  main -L$(MKLPATH) -I$(MKLINCLUDE) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core <br />-L opt/intel/Compiler/11.1/076/lib <strong>-liomp5</strong> -lpthread <br /><br />For run-time error <br />Please add the path of libiomp5.dylib in system environment before run binary.<br />&gt;export DYLD_LIBRARY_PATH="opt/intel/Compiler/11.1/076/lib:$DYLD_LIBRARY_PATH"<br /><br /><br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/dyld-library-not-loadedlibiomp5dylib</link>
      <pubDate>Mon, 16 Nov 2009 01:02:02 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/dyld-library-not-loadedlibiomp5dylib#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/dyld-library-not-loadedlibiomp5dylib</guid>
      <category>Intel® C++ Compiler for Mac OS X* 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>
    </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>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>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>OMP: Error #15: Initializing libguide.dylib, but found libiomp5.dylib already initialized</title>
      <description><![CDATA[ <p>"OMP: Error #15: Initializing libguide.dylib, but found libiomp5.dylib already initialized" is a linker error generated when different parts of a program try to link both static and dynamic verions of the OpenMP runtime.  The solution is to explicitly call out either a dynamic or static link.  The Intel compiler options for specifying the OpenMP library to be linked on Mac OS X* is -openmp-link static and -openmp-link dynamic.<br /><br />This error has also been reported when two or more versions of MKL were installed.  Under this scenario, some files were being linked from one MKL version and some were being linked from another MKL version.  Setting the dynamic library enviornment variable DYLD_LIBRARY_PATH to include a path to only one MKL version resolved this issue.<br /><br />A related article for Windows* developers can be found <a href="http://software.intel.com/en-us/articles/omp-error-15-initializing-libguidelib-but-found-libguide40dll-already-initialized/">here</a>.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/omp-error-15-initializing-libguidedylib-but-found-libiomp5dylib-already-initialized</link>
      <pubDate>Wed, 04 Feb 2009 10:38:39 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/omp-error-15-initializing-libguidedylib-but-found-libiomp5dylib-already-initialized#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/omp-error-15-initializing-libguidedylib-but-found-libiomp5dylib-already-initialized</guid>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Intel® MKL Does Not Immediately Release Memory</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>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 might report this as a memory leak. Should the user wish, memory can be released by the user program through use of a function made available in Intel MKL or memory can be released after each call by setting an environment variable (see technical user notes in the doc directory for more details).</p>
<p>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.</p>
</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-intel-mkl-does-not-immediately-release-memory</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-intel-mkl-does-not-immediately-release-memory#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-intel-mkl-does-not-immediately-release-memory</guid>
      <category>Software Products General</category>
      <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>
    <item>
      <title>Different behavior of LAPACK dgelss and dgesvd on Windows* and Linux*</title>
      <description><![CDATA[ <table border="0" cellpadding="0" cellspacing="15">
<tbody>
<tr>
<td class="bodycopy">
<p>The LAPACK least squares function dgelss gives a different results on Linux* compared with Windows*. Though, it is difficult to get a bit-to-bit correspondence values on both systems, but considering the following may help to get consistent results.</p>
<ol>
<li>Align the arrays to 16 bytes boundary.</li>
<li>Use 80-bit precision instead of the default 64-bit on IA32, which is used on the Intel® compiler. This can be set by using /Qpc80 compiler flag on Windows.</li>
</ol>
<p>For a rank-deficient matrix, it is not easy to get deterministic results. For a rank 2 matrix, only 2 singular vectors will be computed to the working precision and other singular vectors could be any vectors that complement the orthonormal system along the first two, because SVD algorithm becomes unstable in the range of very small singular values. It is unavoidable and we can guarantee bit-to-bit correspondence of the results only on the systems with absolutely the same architecture, same MKL version, same arrays alignment, same FP units flags (precision, rounding etc), running in the same number of threads. Otherwise, ill-conditioned problems cause the different results from the practical point of view, in case of SVD returns several singular values equal to zero (to the working precision). The following should be considered to avoid the different behaviours.</p>
<ol>
<li>Least square problems still should be solved in deterministic way, because the algorithm doesn't use "bad" singular vectors corresponding to zero singular values to compute the solution.</li>
<li>If user needs a deterministic full set of singular vectors, not only for non-zero singular values, user may rebuild "bad" vectors using one of the deterministic procedures making orthonormal vectors to some initial orthonormal subset of "good" vectors. At any rate, user has to examine the singular values to understand whether the singular vectors are meaningful or not.</li>
<li>Using 80-bit precision which doesn't mean that user doesn't take advantage of SIMD instructions - it means that internal FPU computations will be taken using 80-bit precision. On IA32, MKL has both vectorized and non-vectorized x87 code. Most performance relies on the vectorized code and setting 80-bit FPU precision doesn't hurt vectorized code at all. Neither 80-bit precision flag affects the x87 code performance, but makes x87 code more accurate. On Windows user could set it by compiling main program with /Qpc80 flag using Intel compiler.</li>
</ol> 
<table style="height: 33px;" border="0" cellpadding="0" cellspacing="0" width="89">
<tbody>
<tr>
<td class="xs"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table style="height: 23px;" border="0" cellpadding="0" cellspacing="0" width="392">
<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-different-behavior-of-lapack-dgelss-and-dgesvd-on-windows-and-linux</link>
      <pubDate>Fri, 19 Sep 2008 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/performance-tools-for-software-developers-different-behavior-of-lapack-dgelss-and-dgesvd-on-windows-and-linux#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/performance-tools-for-software-developers-different-behavior-of-lapack-dgelss-and-dgesvd-on-windows-and-linux</guid>
      <category>Software Products General</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
  </channel></rss>