<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Fri, 10 Feb 2012 10:15:50 -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/tips-and-techniques/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/type/tips-and-techniques/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>A New Linking Model-Single Dynamic Library mkl_rt Since Intel® MKL 10.3</title>
      <description><![CDATA[ <p>Starting with Intel® MKL 10.3, there is a new dynamic library - the Single Dynamic Library interface (SDL interface) mkl_rt library was introduced. What is that? This article describes what is the SDL and how it can actually do for you.  </p>
<p><b>Single Dynamic Library (SDL)</b></p>
<table cellpadding="0" cellspacing="0" border="1">
<tbody>
<tr>
<td width="189" valign="top">
<p> </p>
</td>
<td width="149" valign="top">
<p>Files</p>
</td>
<td width="230" valign="top">
<p> Notes</p>
</td>
</tr>
<tr>
<td width="189" valign="top">
<p>Windows*</p>
</td>
<td width="149" valign="top">
<p>mkl_rt.lib &amp; mkl_rt.dll</p>
</td>
<td width="230" valign="top">
<p>Single Dynamic Library interface library &amp; Single Dynamic Library</p>
</td>
</tr>
<tr>
<td width="189" valign="top">
<p>Linux and MacOS*</p>
</td>
<td width="149" valign="top">
<p>libmkl_rt.so</p>
</td>
<td width="230" valign="top">
<p>Single Dynamic Library</p>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p>The runtime single dynamic libraries (SDL) library was introduced originally for solving the <a href="http://software.intel.com/en-us/forums/showthread.php?t=66268">declared issue</a> related to the processor specific libraries not getting loaded when dlopen(RTLD_GLOBAL) was called.  The typical error message is</p>
<p><strong>MKL FATAL ERROR: Cannot load neither libmkl_mc3.so nor libmkl_def.so</strong></p>
<p>The single library is added allowing user to link to a single interface library which loads dependent libraries dynamically at runtime depending on runtime CPU detection and/or library function calls.</p>
<p>So the custom dynamic libraries builder in current version used it by default on the Linux* and Mac OS* X operating systems.</p>
<p>Besides resolving the load issue, the SDL actually brings some other benefits: </p>
<p><b>•1.    </b><b>A new linking model, make linking simpler</b></p>
<p>Generally, to link with Intel® Math Kernel Library (Intel® MKL), you may need to choose one library from the Interface layer and one library from the Threading layer and add the only library from the Computational layer and run-time libraries (RTL). See <a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/">MKL Link Line Advisor<br /></a><br />Alternatively, the Single Dynamic Library (SDL) does most of this for you and makes linking even simpler.</p>
<p>For example, dynamic linking of myprog.cpp and parallel Intel MKL supporting the cdecl interface under Windows IA32:</p>
<p> &gt;cl myprog.cpp mkl_intel_c_dll.lib mkl_intel_thread_dll.lib mkl_core_dll.lib libiomp5md.lib</p>
<p>To use SDL library, put only one library in link line</p>
<p>&gt;cl myprog.cpp mkl_rt.lib libiomp5md.lib</p>
<p>For details, please read mkl user guide:  <a href="http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/mklxe/mkl_userguide_win/MKL_UG_linking_your_application/Using_dynamic_interface.htm?wapkw=(mkl_rt)">Using the Single Dynamic Library Interface</a></p>
<p><b>•2.    </b><b>Enables you to select the interface and threading layer dynamically</b></p>
<p>Setting the Threading Layer at use the mkl_set_threading_layer function or the MKL_THREADING_LAYER environment variable.</p>
<p>To set one of these interfaces at run time, use the mkl_set_interface_layer function or the MKL_INTERFACE_LAYER environment variable when based on the Intel(R) 64 architecture</p>
<p>For example</p>
<p>mkl_set_interface_layer(MKL_INTERFACE_LP64)</p>
<p>mkl_set_threading_layer(MKL_THREADING_SEQUENTIAL);</p>
<p>for sequential library and LP 64 interface. </p>
<p>Please take a look at this KB article <a href="http://software.intel.com/en-us/articles/using-the-intel-mkl-dynamic-interface-for-windows?wapkw=(mkl_rt)">Using the Intel® MKL Dynamic Interface for Windows OS </a> for more details about new optional linking model. </p>
<p><b>•3.    </b><b>Support third-party application and language like C#, Java, Python better</b></p>
<p>Dynamic interface libraries have been added in Intel MKL 10.3 for improved linkage from C#. It is not required to build a custom DLL. The Intel MKL library named mkl_rt.dll can be called directly from C# code</p>
<p>A example is in <a href="http://software.intel.com/en-us/articles/using-intel-mkl-in-your-c-program/">http://software.intel.com/en-us/articles/using-intel-mkl-in-your-c-program/</a></p>
<p>It is same for python program. Using SDL directly removes the need to create your own custom library. Please see the article <a href="http://software.intel.com/en-us/articles/using-intel-mkl-in-your-python-programs/">http://software.intel.com/en-us/articles/using-intel-mkl-in-your-python-programs/</a></p>
<p>For third-party application which have used previous mkl version, like have some link lines</p>
<p>-lmkl_em64t</p>
<p>And get the error like: libmkl_em64t can't be found</p>
<p>You can change them to -lmkl_rt as replacement. It includes all mkl routines declaration</p>
<p><strong>SDL Known Issues<br /></strong></p>
<p><strong>undefined symbol: omp_get_num_procs <br /></strong>from http://software.intel.com/en-us/forums/showthread.php?t=83364<br />Cause: The MKL loader located in libmkl_rt.so doesn't try to load libiomp5 library in previous MKL 10.3.x version and the problem is fixed since MKL 10.3.6.<br />Solution: build custom dll via custom dll builder tool or upgrade to latest MKL version (at least MKL 10.3.6)<br /><strong><br />SDL-Interface under x64 crashes</strong><br />from http://software.intel.com/en-us/forums/showthread.php?t=80451<br />Solution: require the related MKL dlls (e.g. libimalloc mkl_mc3 mkl_core mkl_intel_thread) in the PATH</p>
<p><a href="http://software.intel.com/en-us/forums/showthread.php?t=81913">http://software.intel.com/en-us/forums/showthread.php?t=81913</a></p>
<p><a href="http://software.intel.com/en-us/forums/showthread.php?t=82826">http://software.intel.com/en-us/forums/showthread.php?t=82826</a></p>
<p><a href="http://software.intel.com/en-us/forums/showthread.php?t=78272">http://software.intel.com/en-us/forums/showthread.php?t=78272</a></p>
<p><strong>Reference</strong></p>
<p><a href="http://software.intel.com/en-us/articles/performance-tools-for-software-developers-how-do-i-use-intel-mkl-with-java/">How do I use Intel® MKL with Java*?</a><br /><a href="http://software.intel.com/en-us/articles/using-intel-mkl-in-your-c-program/">Using Intel® MKL in your C# program </a><br /><a href="http://software.intel.com/en-us/articles/some-more-additional-tips-how-to-call-mkl-from-your-c-code/">Some more additional tips "How to call KL from your C# code" </a><br /><a href="http://software.intel.com/en-us/articles/using-intel-mkl-in-your-python-programs/">Using Intel® MKL in your Python program</a><br /><a href="http://software.intel.com/en-us/articles/intel-mkl-and-third-party-application-how-to-use-their-together/">Intel® MKL and Third Party Application How to Use them together </a><br /><a href="http://software.intel.com/en-us/articles/using-the-intel-mkl-dynamic-interface-for-windows?wapkw=(mkl_rt)">Using the Intel® MKL Dynamic Interface for Windows OS </a><br /><a href="http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-linux-linking-applications-with-intel-mkl-version-100/">Linking Applications With Intel® MKL Version 10.0</a><br /><a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/">MKL Link Line Advisor<br /></a></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/a-new-linking-model-single-dynamic-library-mkl_rt-since-intel-mkl-103/</link>
      <pubDate>Sat, 24 Sep 2011 08:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/a-new-linking-model-single-dynamic-library-mkl_rt-since-intel-mkl-103/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/a-new-linking-model-single-dynamic-library-mkl_rt-since-intel-mkl-103/</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Intel(R) MKL Command-line Link Tool</title>
      <description><![CDATA[ The Intel® Math Kernel Library (Intel® MKL) Link Tool is an executable program that can help to build an application using Intel® MKL or simplify building the application with Intel® MKL. The Intel MKL Link Tool can add all needed options and libraries for the application and advises on which environment variables to use. <br />The tool supports three modes:
<div><span ><br /></span>
<ul>
<li><b>Inquiry mode</b>: In this mode, the tool can return the compiler options, libraries, or environment variables necessary to build and execute the application. Usage:<br /><br />
<ul>
<li>Get Intel MKL libraries: 
<ul>
<code>mkl_link_tool –libs [Intel MKL Link Tool options]</code> 
</ul>
</li>
<br />
<li>Get compilation options: 
<ul>
<code>mkl_link_tool -opts [Intel MKL Link Tool options]</code> 
</ul>
</li>
<br />
<li>Get environment variables for application executable: 
<ul>
<code>mkl_link_tool -env [Intel MKL Link Tool options] </code>
</ul>
</li>
</ul>
</li>
<br />
<li><b>Compilation mode</b>: In this mode the Intel MKL Link Tool can build the application. Usage:<br />
<ul>
<code>mkl_link_tool [options] &lt;compiler&gt; [options2] file1 [file2 ...] </code>
</ul>
<br />
<p>where</p>
<ul>
<span ><i>options</i></span> represents any number of  Link Tool options <br /><span ><i>compiler</i></span> represents the compiler name: ifort, icc (icpc, icl), cl, gcc (g++), gfortran, pgcc (pgcp), pgf77 (pgf90, pgf95, pgfortran), mpiic, mpiifort, mpic (mpic++), mpif77 (mpif90, mpif95)<br /><span ><i>options2</i></span> represents any number of compiler options 
</ul>
<p> </p>
</li>
<li><b>Interactive mode: </b>This mode allows users to go through all possible Intel MKL Link Tool supported options. The output provides libraries, options, or environment variables as in the inquiry mode, or a built application as in the compilation mode (depending on what you specify). Usage: <br /><br />
<ul>
<code>mkl_link_tool -interactive</code> 
</ul>
</li>
</ul>
<p>Use the -help option for full help with the Intel MKL Link Tool and to show the defaults for the current system.</p>
</div> ]]></description>
      <link>http://software.intel.com/en-us/articles/mkl-command-line-link-tool/</link>
      <pubDate>Mon, 19 Sep 2011 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/mkl-command-line-link-tool/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/mkl-command-line-link-tool/</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Description of PARDISO errors and messages</title>
      <description><![CDATA[ <p class="MsoNormal"><span lang="EN-US" >See the table below for the description of the error indicator.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" >
<tbody>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><b><i><span lang="EN-US" >Error </span></i></b><i><span lang="EN-US" >( Integer)</span></i><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><b><span lang="EN-US" >Information</span></b><span lang="EN-US" ><o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >0</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >no error</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-1</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >input inconsistency<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-2</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >not enough memory<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-3</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >reordering problem<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-4<o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >zero pivot, numerical factorization or<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >iterative refinement problem</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-5</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >unclassified (internal) error<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-6</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >preordering failed (matrix types 11, 13 only)<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-7<o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >diagonal matrix is singular<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-8<o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >32-bit integer overflow problem<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-9<o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >not enough memory for OOC<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-10<o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >problems with opening OOC temporary files<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-11<o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >read/write problems with the OOC data file<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >Below each error is described in details:<o:p></o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US" ><o:p></o:p></span></b></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span>0: <span ></span></span></i></b><b ><i ><span lang="EN-US" >no error</span></i></b><b ><i ><span lang="EN-US" ><o:p></o:p></span></i></b></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><o:p></o:p></span></i></b></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span>-1: <span ></span></span></i></b><b ><i ><span lang="EN-US" >Input inconsistency</span></i></b></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<span >This error can appear in the following situations:</span><br />
<ul>
</ul>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<ul>
<li>
<div class="MsoListParagraphCxSpFirst"><span lang="EN-US" >Incorrect stage number for PARDISO was called.<o:p></o:p></span></div>
</li>
<li>
<div class="MsoListParagraphCxSpMiddle"><span lang="EN-US" >Incorrect PARDISO calling sequence, e.g. run stage &gt; 1 without initialization results in error reporting.<o:p></o:p></span></div>
</li>
<li><span lang="EN-US" >Incorrect number of matrices to be solved was set (PARDISO can be used for solving several matrices with the same sparsity structure at once, taking into account that their maximum number was defined previously. Setting the number of matrices to be solved outside the range of <b>1</b></span><b><samp><span lang="EN-US">≤</span></samp><span lang="EN-US" > … </span><samp><span lang="EN-US">≤</span></samp></b><span lang="EN-US" ><b>maxfct</b> results in error).</span></li>
<li>
<div class="MsoListParagraphCxSpLast"><span lang="EN-US" >PARDISO checks the parameters at each stage for consistency with the parameters at the previous stages. Every disagreement results in error reporting.<o:p></o:p></span></div>
</li>
</ul>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >-2: <span ></span></span></i></b><b ><i ><span lang="EN-US" >not enough memory</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is returned in the case of any problem with memory allocation inside PARDISO.<o:p></o:p></span></p>
<p class="MsoNormal"><i ><span ><span lang="EN-US" >PARDISO messages:<o:p></o:p></span></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><span ></span><i >"*** Error in PARDISO memory allocation: [STRUCTURE NAME], size to allocate: %d bytes"<o:p></o:p></i></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"total memory wanted here: %d kbyte"<o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"symbolic (max): %d symbolic (permanent): %d"<o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"real(including 1 factor): %d"<o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><span >It describes the issue that arises on allocation of STRUCTURE_NAME inside PARDISO. A additional information about current memory usages is also printed.</span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >-3</span></i></b><b ><i ><span lang="EN-US" >: </span></i></b><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >reordering problem</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >Returned for any problem on a reordering stage (phase 11)<o:p></o:p></span></p>
<p class="MsoNormal"><i ><span ><span lang="EN-US" >PARDISO messages:<o:p></o:p></span></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><span ></span><i >"*** error PARDISO: reordering, symbolic factorization"<o:p></o:p></i></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >-4: <span ></span></span></i></b><b ><i ><span lang="EN-US" >zero pivot, numerical factorization or iterative refinement problem</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >Let us start with a citation of the Intel MKL manual:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" >Using </span></i><i><span lang="EN-US" >phase </span></i><i ><span lang="EN-US" >=33 </span></i><i ><span lang="EN-US" >results in an error message (</span></i><b ><i><span lang="EN-US" >error </span></i></b><b ><i ><span lang="EN-US" >=4, should be -4 *</span></i></b><b ><i ><span lang="EN-US" > </span></i></b><i ><span lang="EN-US" >) <span ></span>if the stopping criteria for the Krylow-Subspace iteration cannot be reached. <o:p></o:p></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" >If </span></i><i><span lang="EN-US" >phase</span></i><i ><span lang="EN-US" >= 23</span></i><i ><span lang="EN-US" >, then the factors </span></i><i><span lang="EN-US" >L</span></i><i ><span lang="EN-US" >, </span></i><i><span lang="EN-US" >U </span></i><i ><span lang="EN-US" >are recomputed for the matrix </span></i><i><span lang="EN-US" >A </span></i><i ><span lang="EN-US" >and the error flag </span></i><b ><i><span lang="EN-US" >error</span></i></b><b ><i ><span lang="EN-US" >=0 </span></i></b><i ><span lang="EN-US" >in case of a successful factorization. If </span></i><i><span lang="EN-US" >phase </span></i><i ><span lang="EN-US" >=33</span></i><i ><span lang="EN-US" >, then </span></i><b ><i><span lang="EN-US" >error </span></i></b><b ><i ><span lang="EN-US" >= -4</span></i></b><i ><span lang="EN-US" > </span></i><i ><span lang="EN-US" >signals the failure<o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >If the solver detects a zero or negative pivot for these matrix types, the factorization is stopped, PARDISO returns immediately with an error (</span></i><b ><i><span lang="EN-US" >error </span></i></b><b ><i ><span lang="EN-US" >= -4</span></i></b><i ><span lang="EN-US" >) and </span></i><i><span lang="EN-US" >iparm</span></i><i ><span lang="EN-US" >(30) </span></i><i ><span lang="EN-US" >contains the number of the equation where the first zero or negative pivot is detected.</span></i><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >The error returned in the case of any problem at the factorization stage (phase 22) or at the iterative refinement stage of solution. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i ><span ><span lang="EN-US" >PARDISO messages:<o:p></o:p></span></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"*** Error in PARDISO: cgs error iparam(20) %d"</span></i><span lang="EN-US" > – prints iparm(20) – see CG / CGS diagnostics in the Intel MKL manual<o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"*** error PARDISO: iterative refinement"<o:p></o:p></span></i></p>
<p class="MsoNormal"><span ><span lang="EN-US" ><i>" contraction rate is greater than 0.9, interrupt" – </i>rate of contraction is too small <i><o:p></o:p></i></span></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"*** error PARDISO: iterative refinement"<o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >" exceeds max. iteration number %d"<span > </span></span></i><span lang="EN-US" >- prints abs(iparm(8))<o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"*** Error in PARDISO: internal error, insufficient memory factorization" – </span></i><span lang="EN-US" >looks like a problem at the factorization stage except for pivoting issues (see errors below)<o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"*** Error in PARDISO: zero or negative pivot, A is not SPD-matrix" – </span></i><span lang="EN-US" >original matrix (almost) not SPD one (probably due to computer arithmetic inaccuracies)<o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"*** Error in PARDISO: zero pivot" – </span></i><span lang="EN-US" >the same as above but for other matrix types<i ><o:p></o:p></i></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span>-5</span></i></b><b ><i ><span lang="EN-US" >: </span></i></b><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >unclassified (internal) error</span></i></b><b ><i ><span lang="EN-US" ><o:p></o:p></span></i></b></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is not used currently and is reserved for the future use.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >-6: <span ></span></span></i></b><b ><i ><span lang="EN-US" >preordering failed (matrix types 11, 13 only)</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is returned in the case of any problem at the stage of preparation for reordering (in matching algorithm).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i ><span ><span lang="EN-US" >PARDISO messages:<o:p></o:p></span></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><span ></span><i >"*** Error in PARDISO: preordering failed after %d neqns out of %d"<o:p></o:p></i></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"structure singular or input/parameter problem (matrix type 11,13)"<o:p></o:p></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >Looks like the message provides no meaningful information.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span>-7: <span ></span></span></i></b><b ><i ><span lang="EN-US" >diagonal matrix problem</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >PARDISO prints no messages. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >-8: <span ></span></span></i></b><b ><i ><span lang="EN-US" >32-bit integer overflow problem</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is returned on 32-bit architecture for big matrices when indices become greater than the maximal integer value on this platform. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i ><span ><span lang="EN-US" >PARDISO messages:<o:p></o:p></span></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><span ></span><i >"*** error PARDISO: reordering, symbolic factorization"</i><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" >-9: </span></i></b><b ><i ><span lang="EN-US" >not enough memory for OOC</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >Let us start with a citation of the Intel MKL manual:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" >Note that if </span></i><i><span lang="EN-US" >iparm</span></i><i ><span lang="EN-US" >(60) </span></i><i ><span lang="EN-US" >is equal to 1 or 2, and the total peak memory needed for strong local arrays is more than </span></i><i ><span lang="EN-US" >MKL_PARDISO_OOC_MAX_CORE_SIZE</span></i><i ><span lang="EN-US" >, the program stops with <b >error -9</b>. In this case, increase of </span></i><i ><span lang="EN-US" >MKL_PARDISO_OOC_MAX_CORE_SIZE </span></i><i ><span lang="EN-US" >is recommended.</span></i><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is returned when amount of memory available for PARDISO (defined by MKL_PARDISO_OOC_MAX_CORE_SIZE, by default 2000 Mb) is not enough to solve the current matrix. The issue can be resolved by increasing the value for available memory.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" >-10: </span></i></b><b ><i ><span lang="EN-US" >problems with opening OOC temporary files</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is returned when PARDISO can’t create / open temporary files for storing OOC arrays, e.g. in the case of wrong permissions or when files were removed or blocked or not released after the previous steps.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" >-11: </span></i></b><b ><i ><span lang="EN-US" >read/write problems with the OOC data file</span></i></b><b ><i ><span lang="EN-US" ><o:p></o:p></span></i></b></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is returned when some problems appear in the process of working with files, e.g. in the case of no space left on device or problems with read / write operations because of algorithm issues. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" >* - the documentation error. Will be fixed in the version 10.3 Update3.</span></i><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" >** - available memory means the RAM system's memory which is available at the moment of starting the calculations</span></i><i><span lang="EN-US" >.</span></i><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/description-of-pardiso-errors-and-messages/</link>
      <pubDate>Fri, 14 Jan 2011 11:30:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/description-of-pardiso-errors-and-messages/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/description-of-pardiso-errors-and-messages/</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® Fortran Compiler for Linux* 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>True DSS and PARDISO overloaded F90 interfaces are available in Intel®MKL 10.3.1 and 10.2.7.</title>
      <description><![CDATA[ <div><br /></div>
<div><br /></div>
Renewed F90 interfaces for DSS and PARDISO are available in Intel® MKL 10.3.1 and 10.2.7.
<div>There are a few advantages over the previous version.<br /><br /><b><span >DSS: </span></b>
<div><br /></div>
<div>New DSS F90 interfaces allow calling factor and solve routines via short names.</div>
<div>Now there is no need to specify a data type (real/complex) in the name of routines as the interfaces are overloaded.</div>
<div>All data types are supported: real(kind=4), real(kind=8), complex(kind=4) and complex(kind=8).<br /><br /><span ></span></div>
<div>
<table cellpadding="0" bordercolor="#808080" cellspacing="0" border="1">
<tbody>
<tr>
<td width="168" valign="top"><b>Old names</b></td>
<td width="161" valign="top"><b>New names</b></td>
</tr>
<tr>
<td width="168" valign="top"><br />dss_factor_real()<br />dss_factor_complex()<br /><br />dss_solve_real()     <br />dss_solve_complex()<br /><br /></td>
<td width="161" valign="top"><br />dss_factor()     <br /><br /><br />dss_solve()</td>
</tr>
</tbody>
</table>
<br />
<div id="art_pre_template"><b><br /></b></div>
<div id="art_pre_template">Backward compatibility with old names is supported.</div>
<div id="art_pre_template"><span ><br /></span></div>
<div id="art_pre_template"><b><span >PARDISO:</span> </b></div>
<div id="art_pre_template"><br /></div>
<div id="art_pre_template">New PARDISO F90 interface is also overloaded and accepts all data types:</div>
<div id="art_pre_template">real(kind=4), real(kind=8), complex(kind=4) and complex(kind=8).</div>
<div id="art_pre_template"><br /></div>
<div id="art_pre_template"><b><span >NOTE</span>:</b> Despite new F90 interfaces are overloaded by all data types - do not forget to set single precision options explicitly in DSS and/or PARDISO when it's needed.   <br /></div>
<div id="art_pre_template"><span ><b><br /></b></span></div>
<div id="art_pre_template"><br /></div>
<div id="art_pre_template"><br /></div>
</div>
</div> ]]></description>
      <link>http://software.intel.com/en-us/articles/true-dss-and-pardiso-overloaded-f90-interfaces-are-available-in-intelmkl-1031-and-1027/</link>
      <pubDate>Wed, 08 Dec 2010 11:30:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/true-dss-and-pardiso-overloaded-f90-interfaces-are-available-in-intelmkl-1031-and-1027/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/true-dss-and-pardiso-overloaded-f90-interfaces-are-available-in-intelmkl-1031-and-1027/</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 Linux* 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® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>How to select different update of Intel® Composer XE 2011 for Linux* and Mac OS* X</title>
      <description><![CDATA[ <strong>Reference Number</strong> : dpd200194608, dpd200160631<br /><br /><strong>Version</strong> : 2011 (Compiler 12.0)<br /><br /><strong>Product</strong> : Intel Composer XE <br /><br /><strong>Operating System</strong> : Linux, Mac OS X<br /><br /><strong><br />Problem Description</strong> :  When an Intel Composer XE update is installed, the scripts <strong>compilervars.sh [.csh]</strong> in the bin directories of previously installed compilers no longer set the environment for the corresponding compiler or update, but set the environment for the most recent update instead. This applies to all components of Intel Composer XE that may be present: C/C++ and Fortran Compilers; Intel Debugger; Intel Threading Building Blocks; Intel Math Kernel Library and Intel Performance Primitives.<br /><br /><br /><strong>Workaround:</strong> <br />
<div id="art_pre_template">To select a compiler update other than the latest, please use the script <strong>compilervars_arch.sh [.csh] </strong>from the bin directory of the desired compiler version. Similarly, for other components of Intel Composer XE, use the scripts idbvars.sh, tbbvars.sh, mklvars.sh and ippvars.sh from the bin directory of the desired version, as needed.<br /><br /><strong>Resolution Status:<br /></strong>The issue has been fixed in Composer XE update #4.  To select a specific version, use the compilervars.[c]sh script from the version-specific directory.  For example, after installing update #4 on a system where update #3 was already installed:<br /><br />&gt; source /opt/intel/composerxe-2011.3.174/bin/compilervars.sh intel64  &lt;&lt;&lt;=== update #3<br /><br />&gt; ifort -V<br />Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 12.0.3.174 Build 20110309<br /><br />&gt; source /opt/intel/composerxe-2011.4.191/bin/compilervars.sh intel64 &lt;&lt;&lt;== update #4<br /><br />&gt; ifort -V<br />Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 12.0.4.191 Build 20110427<br /><br />As before, the script from the generic, non-version specific directory will initialize for the most recent update:<br /><br />&gt; source /opt/intel/composerxe-2011/bin/compilervars.sh intel64  &lt;&lt;&lt;=== non-version specific (most recent update)<br />&gt; ifort -V<br />Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 12.0.4.191 Build 20110427<br /><br /><br /><br /><br /><br /><em>[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers. Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site. ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose. Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]<br /></em></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-select-different-update-of-intel-composer-xe-2011-for-linux-and-mac-os-x/</link>
      <pubDate>Mon, 06 Dec 2010 08:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-select-different-update-of-intel-composer-xe-2011-for-linux-and-mac-os-x/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-select-different-update-of-intel-composer-xe-2011-for-linux-and-mac-os-x/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* 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® Threading Building Blocks Knowledge Base</category>
    </item>
    <item>
      <title>New matrix vector product BLAS routines</title>
      <description><![CDATA[ <br />Starting with the version 10.3, Intel® MKL provides BLAS Level 2 routines for computing two matrix-vector products for a dense matrix.  These routines support all MKL's data types ( single/double, single complex, double complex precisions).
<div><br /></div>
<div>The current implementation offers FORTRAN 77 and FORTRAN 95 interfaces only.</div>
<div><br /></div>
<div>This is Fortran77 Syntax for the double precision data type:</div>
<div><br />call dgem2vu(m, n, alpha, a, lda, x1, incx1, x2, incx2, beta, y1, incy1, y2, incy2);<br /></div>
<div><br /></div>
<div>Description<br />The dgem2vu routines perform two matrix-vector operations defined as <br />y1 := alpha*A*x1 + beta*y1,<br />and <br />y2 := alpha*A'*x2 + beta*y2,<br />where:<br />alpha and beta are scalars,<br />x1, x2, y1, and y2 are vectors,<br />A is an m-by-n matrix.<br /></div>
<div><br /></div>
<div>and the output parameters are y1 and y2 correspondingly.</div>
<div><br /></div>
<div>The prototype of the code:</div>
<div>
<div>A prototype code is:<br />do j = 1, N<br />do i = 1, M<br />B1(i) = B1(i) + A(i,j)*V1(j)<br />B2(j) = B2(j) + A(i,j)*V2(i)<br />end do<br />end do</div>
<div><br /></div>
<div>because of the reuse matrix A(i,j) elements at the loop, there is a significant performance benefit versus 2 consecutive calls of 2 DGEMVs or DSYMV routines.</div>
<div><br /></div>
<div><br /></div>
<div>Below is the performance result comparison for  DGEM2VU / ( 2 consecutive calls of DGEMV ) / DSYMV</div>
<div><br /></div>
<div><img src="http://software.intel.com/file/27279" alt="1.bmp" title="1.bmp" /><br /></div>
<div><br /></div>
<div><br /></div>
<div><br /></div>
</div> ]]></description>
      <link>http://software.intel.com/en-us/articles/new-matrix-vector-product-blas-routines/</link>
      <pubDate>Sun, 07 Nov 2010 07:30:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/new-matrix-vector-product-blas-routines/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/new-matrix-vector-product-blas-routines/</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® Fortran Compiler for Linux* 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>C interface Support for LAPACK</title>
      <description><![CDATA[ <p >Intel® MKL 10.3, we have extended C support and added C language interface to LAPACK rotuines.<br /><br />Please refer the <a href="http://origin-software.intel.com/file/28874" title="C interface to LAPACK">C interface to LAPACK </a>technical paper for more details.</p>
<p>Please follow the <a href="http://software.intel.com/sites/products/documentation/hpc/mkl/lapack/mkl_lapack_examples/index.htm">link</a>, you can find the online documentations and C LAPACK examples.</p>
<p> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/c-interface-for-lapack/</link>
      <pubDate>Sat, 06 Nov 2010 11:30:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/c-interface-for-lapack/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/c-interface-for-lapack/</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 Linux* 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® Math Kernel Library Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Intel® FLEXlm* License Borrowing Capability</title>
      <description><![CDATA[ <strong>Overview<br /></strong><br />This feature allows users to ‘borrow” a license seat from the license host server for a limited time, disconnect from the network and use the borrowed license even with no connection to the license server. This is very useful in case you want to use the software offline.<br /><br /><strong>Required Information</strong><br /><br />To use the license borrow functionality for Intel floating product licenses, customers need to ensure they have the following items:<br /><br />1) A build of the Intel® License Manager for FLEXlm* (for the desired OS) that supports the Borrow capability: <br /><br />a) Users need to make sure that they are using a build of Intel FLEXlm* License Manager which supports borrowing <br />and early return of borrowed licenses. <br /><br />b) We recommend the customer download and install one of the free license manager servers available at the <br />following website link:<br /><a href="http://software.intel.com/en-us/articles/performance-tools-for-software-developers-intel-flexlm-license-servers/">http://software.intel.com/en-us/articles/performance-tools-for-software-developers-intel-flexlm-license-servers/</a><br /><br />2) A license file which has the keyword BORROW in it: <br /><br />a) Licenses for Intel® Software Development Products with version 2011 have the BORROW feature with a BOROW period of 7 days enabled by default.  <br /><br />b) To obtain a borrow-enabled license for a multi-seat floating product license with a version older than 2011, please   submit an issue to Intel® Premier Support at https://premier.intel.com/ under product 'Download, Licensing and Registartion'.<br />     <br /><br /><strong>Steps for starting the FLEXlm* License Manager (Server) for using the Borrow feature<br /></strong><br />(1) Start the license server using the new borrow-enabled license file(s).<br /><br />(2) Check the log for the Intel® FLEXlm* License Server and make sure that it does not complain about BORROW keyword in the license file. <br /><br />     • By default, the log file location on Windows* is: %ProgramFiles%\Common Files\Intel\FLEXlm <br />     • By default, the log file location on Linux* and Mac OS* X is the same where FLEXlm server has been installed<br /><br />     A typical log file when FLEXlm Server has started successfully looks like the following:<br /><br />     14:00:31 (lmgrd) US Patents 5,390,297 and 5,671,412.<br />     14:00:31 (lmgrd) World Wide Web: http://www.macrovision.com<br />     14:00:31 (lmgrd) License file(s): server.lic<br />     14:00:31 (lmgrd) lmgrd tcp-port 28518<br />     14:00:31 (lmgrd) Starting vendor daemons ...<br />     14:00:31 (lmgrd) Started INTEL (internet tcp_port 35860 pid 9309)<br />     14:00:31 (INTEL) FLEXlm version 9.23<br />     14:00:31 (INTEL) Server started on LicenseServer for:<br />     14:00:31 (INTEL) I3F97C15E (consisting of:   ArBBL<br />     14:00:31 (INTEL) CCompL    DbgL    FCompL<br />     14:00:31 (INTEL) MKernL    PerfAnl    PerfPrimL<br />     14:00:31 (INTEL) StaticAnlL    ThreadAnlGui    ThreadBB)<br /><br /><br /><strong>Client System Setup for the Borrow feature (Application Setup)<br /></strong><br />NOTE: The term “Client” refers to the application that uses Intel FLEXlm floating license seat check-out and check-in. <br /><br />1) Download the lmutil for your operating system and architecture from http://www.globes.com/support/fnp_utilities_download.htm. <br /><br />2) If you are not able to download the lmutil from the website above, work with your Intel Support team contact (or submit an issue to Premier Support at https://premier.intel.com/) for access to lmutil, and have the information about your Operating System, OS Version and Architecture (IA-32, Intel® 64 and/or IA-64[Intel® Itanium®]).<br /><br />3) Verify that no Intel product components’ license seats (i.e., Compiler Professional Edition, Vtune, etc.) can be borrowed by running the following command. If you see any information that indicates one or more features/components were borrowed, then borrowing has already been enabled for those licensed features/components. Here is an example of output when no borrowing is enabled.<br /><br />lmutil lmborrow -status<br /><br />Example:<br />lmutil lmborrow -status<br />lmutil - Copyright (c) 1989-2009 by Macrovision Corporation. All rights reserved.<br /><br /><br />4) Configure the borrow duration and FLEXlm feature to be borrowed:<br /><br />lmutil lmborrow INTEL dd-mmm-yyyy:[time] &lt;featurename&gt; -c &lt;serverlicense file&gt;<br /><br />Example:<br />lmutil lmborrow INTEL 06-Oct-2011 CCompL -c server.lic<br /><br />where, <br />server.lic is the license file which was used to start the server. It should be noted that license borrowing will fail if the license file on the client side is different than the one which was used to start the server.<br /><br />The command above borrows a “featurename” called CCompL (Intel® C++ Compiler for Linux*) from the vendor INTEL until 6th Oct 2011 using the license file server.lic<br /><br />NOTE:  The time specified on command line of lmborrow is the end date/time the user planed to borrow, which must be &lt;= 168 hours, which is the maximum borrow period. If the user wants to borrow the license seat for only 1 or 2 days, the corresponding date/time for that period should be set. <br />Users cannot borrow a license seat for more than the 168 hour barrier that is set in the license file and in the license server logic. If an extended borrow time is required, please submit an issue to Intel® Premier Support at https://premier.intel.com/ under product 'Download, Licensing and Registartion' providing a jsutification of why you need to extend the borrow time beyond 7 days.<br /><br />After running this command, the customer should see the following:<br /><br />lmutil - Copyright (c) 1989-2004 by Macrovision Corporation. All rights reserved.<br />Setting LM_BORROW=3-oct-2011:INTEL:06-oct-2011:CCompL<br /><br /><br />5) If the above steps are successful, you are now ready to borrow a seat by running the client application (e.g. – Composer XE, Vtune Amplifier XE, Inspector XE, etc). The FLEXlm feature will be borrowed when you run the client/application and a successful check-out happens. As soon as the first license is checked out, the server log file will confirm the borrowed feature with the following message in the log file:<br /><br />14:35:14 (INTEL) OUT: "I3F97C15E" User1@Host1<br />14:35:14 (INTEL) OUT: "CCompL" User1@Host1<br /><br />Note that there are no corresponding IN entries in the server log. This is different behavior than a normal check-out where corresponding to every two OUT entries in the server log file, you will also see two IN entries after the OUT entries after the application exits.<br /><br /><br />6) Verify that the FLEXlm product feature was really borrowed by running the following command on the client system: <br /><br />lmutil lmborrow –status<br /><br />Example for borrowing a seat for the Intel C++ Compiler for Linux*:<br /><br />lmutil lmborrow –status<br />lmutil - Copyright (c) 1989-2004 by Macrovision Corporation. All rights reserved.<br /><br />Vendor Feature Expiration<br />______ ________ __________<br /><br />INTEL CCompL 6-Oct-11 23:59<br /><br />NOTE: Before the Borrow period expires, the product will always get the license from the local storage for the Borrowed license seat when it tries to check-out license. The Client system on which the product is used does not need to be attached to FLEXlm* license host server.<br /><br /><br />7) Disconnect the client system from the server network. Now with the borrowed license, you can use the software application with the borrowed license.<br /><br />NOTE: After the Borrow period expires, the product license seat will no longer to be able to check-out the license from local storage. Instead, the client system must be “attached” to the FLEXlm* license host server to check-out a product license seat.<br /><br /><br />8) Run the following command to return a borrowed license: <br /><br />lmutil lmborrow -return -c server.lic featurename<br /><br />Example:<br />lmutil lmborrow -return -c server.lic CCompL<br />lmutil - Copyright (c) 1989-2009 by Macrovision Corporation. All rights reserved.<br /><br />On the FLEXlm server side, you will see the following message in the log file for the borrowed feature which was returned. This message is different compared to a normal check-in.<br /><br />14:40:17 (INTEL) REMOVING User1@Host1:/dev/pts/0 from CCompL by administrator request.<br /><br />14:40:17 (INTEL) IN: "CCompL" User1@Host1 (USER_REMOVED)<br />14:40:17 (INTEL) IN: "I3F97C15E" <a href="http://software.intel.commailto:User1@Host1">User1@Host1</a> (USER_REMOVED)<br /><br /><br />9) Run the following command to verify that the license was returned successfully back to the server: <br /><br />lmutil lmborrow -status<br /><br />Example:<br />./lmutil lmborrow -status<br />lmutil - Copyright (c) 1989-2009 by Macrovision Corporation. All rights reserved.<br /><br />Note: If you try to return a license which has not been borrowed, you will see a message like this:<br /><br />./lmutil lmborrow -return -c server.lic CCompL<br />lmutil - Copyright (c) 1989-2009 by Macrovision Corporation. All rights reserved.<br />Error: CCompL not currently borrowed.<br /><br /><br /> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-flexlm-license-borrowing-capability/</link>
      <pubDate>Fri, 06 Aug 2010 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-flexlm-license-borrowing-capability/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-flexlm-license-borrowing-capability/</guid>
      <category>Intel® TBB</category>
      <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® 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® License Manager for FLEXlm* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Intel® Threading Building Blocks 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>Getting reproducible results with Intel® MKL</title>
      <description><![CDATA[ <b>Introduction</b><br /><br />The Intel® Math Kernel Library (Intel® MKL) contains highly optimized, extensively threaded math routines for science, engineering, and financial applications that require maximum performance. While performance is the chief reason for the existence of Intel MKL, users count on Intel MKL to employ the best practices available to provide accurate results. In recent years, a growing number of Intel MKL users have noted a number of factors that can affect the numerical results of the library. This article discusses the underlying reason for these variations in output, the mechanisms that cause the variations in Intel MKL, and some ways to improve chances for consistency in certain cases.<br /><br /><br /><b>The sources of indeterminism</b><br /><br />Most users of floating point math libraries expect some rounding error when doing multiple calculations. A simple experiment shows that the rounding error can be different if the order of operations changes. If we assume for a moment double precision floating point numbers, then:
<div><span ><br /></span></div>
<div>
<div><span >2<sup >60</sup> + (-2<sup >60</sup> + 1) = 2<sup >60</sup> + </span>-2<sup >60</sup> <span >= 0</span></div>
<div><br /></div>
<div>since -2<sup >60</sup> + 1 rounds to -2<sup >60</sup><span >. Yet</span></div>
<div><span ><br /></span></div>
<div><span >(2<sup >60</sup> + -2<sup >60</sup>) + 1 = 0 + 1<sup > </sup><span >= 1</span></span></div>
<div><br /></div>
<div>With this simple example in mind we’ll discuss three different cases where methods used in Intel MKL that are crucial to performance cause indeterminate results.</div>
<div><br /><b>Memory alignment</b>: One of the ways Intel MKL gets good performance is through use of new instructions made available with successive generations of Intel® processors. Some of these instructions make computation more efficient by performing the same floating point operation on multiple floating point numbers at once. The way some of these instructions are loaded however depends on how the data is situated in memory. If in one run of the program, the data happens to be aligned along a 16-byte boundary, then the first 2 double precision numbers in the array would be grouped together, while in the next run, if the array is offset from that memory boundary, then the 2nd and 3rd double precision numbers are grouped together.  This difference in order can cause different results when running the same program two times consecutively with all settings remaining identical. <strong>Update:</strong> The latest processors supporting Intel Advanced Vector Extensions (AVX) have larger registers and thus change the requirement to alignment along 32-byte boundaries.<br /><br /><strong>Internal Intel MKL code paths</strong>: To get the best performance wherever a program is run, Intel MKL will check on the processor type at runtime and can dispatch processor-specific code accordingly. If a particular instruction set or cache of a certain size is available a specialized code path may exploit it. These code paths are different enough that they will again cause a different order of operations and will cause slightly different results on different processors.  <br /><br /><b>Threading</b>: Finally, Intel MKL has been threaded for over 10 years, but it is only more recently that access to systems with many processors has become common place. Threading is an important way that Intel MKL provides top performance on today’s systems. With different numbers of threads, a problem will be divided in different ways and order of operations change, causing the results to change slightly. If the number of threads is not set, Intel MKL will by default use the number of cores that the OS reports are available on that system. But even in the case when a program is run more than once on the same systems with same number of threads some function in Intel MKL may return differing results. The reason has to do with how these functions use threading to asynchronously accumulate the results from the multiple threads. Since very small changes in the system can cause the threads to return in a different order, the results can be accumulated in a different order, causing slight variations in output.<br /><br /><br /><b>What can be done?</b><br /><br />In the case of memory alignment, the answer is relatively easy. Simply aligning the memory allocated for input data along 16-byte boundaries (or 32-byte boundaries on processors supporting Intel AVX) will ensure that the results will be consistent. To this end we provide the mkl_malloc() functions to allocate memory along these boundaries. <br /><br />In the case of threading, many functions will return the same results if run with the same number of threads on the same number of cores. For those functions that are exceptions to this, one should set the number of threads to 1, or link the sequential version of the library at significant cost to the performance on systems where Intel MKL would otherwise use a large number of cores.<br /><br />Finally, because disabling the optimized code paths or threading can have such a large impact on performance, the best option may be to consider making some allowance for small variations in results wherever possible. <br /></div>
</div> ]]></description>
      <link>http://software.intel.com/en-us/articles/getting-reproducible-results-with-intel-mkl/</link>
      <pubDate>Thu, 29 Jul 2010 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/getting-reproducible-results-with-intel-mkl/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/getting-reproducible-results-with-intel-mkl/</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Math Kernel Library 10.3 Beta</title>
      <description><![CDATA[ <p><img height="135" width="747" src="http://software.intel.com/file/28203" /></p>
<p>Click here to <a target="_blank" href="https://registrationcenter.intel.com/RegCenter/BetaForm.aspx?ProductID=1459"><span ><b>register and download</b></span></a><br /><br />Intel MKL 10.3 beta is available now, your feedback is critical to the success of our product. We are especially interested in your feedback on the key features listed below. We also encourage you to send us feedback about our beta programs, web site and support services.</p>
<p><b>New Key features:</b></p>
<p>•  <b><a href="http://software.intel.com/en-us/articles/intel-avx-optimization-in-mkl-v103-beta/">Intel<sup>®</sup> Advanced Vector Extensions (Intel AVX) optimization</a></b></p>
<p>Intel AVX is the next step in the evolution of Intel processors. Intel AVX optimization has been extended to more MKL functions to get better performance on future Intel architecture.</p>
<p>•  <b><a href="http://software.intel.com/en-us/articles/statistical-summary-library-overview/">Summary Statistics library</a></b></p>
<p>An optimized parallel library that uses recent advances of statistics by providing modern algorithms that enhance accuracy and performance of statistical computations.</p>
<p>•  <b>Extended MKL C language support<i><br /></i></b><br />o    <a href="http://software.intel.com/en-us/articles/c-interface-for-lapack/">C interface to LAPACK</a><br />o    <a href="http://software.intel.com/en-us/articles/c-style-0-based-index-arrays-in-pardiso/">C style 0-based index arrays in PARDISO</a></p>
<p>•  <b><a href="http://software.intel.com/en-us/articles/using-the-intel-mkl-dynamic-interface-for-windows/">Dynamic interface libraries for Windows</a></b></p>
<p>New dynamic interface libraries have been added for improved linkage from C# or Java on Windows.</p>
<p>• <b><a href="http://software.intel.com/en-us/articles/dynamic-accuracy-control-for-vml/">Routine Level mode controls in VML</a></b></p>
<p>Users can now control or set the accuracy for each function separately in VML with a new argument in each function</p>
<p><i>• </i><b></b><a href="http://software.intel.com/en-us/articles/new-matrix-vector-product-blas-routines/"><b>New symmetric matrix-vector product BLAS routine in blocked storage</b></a></p>
<ul>
<li><a href="http://software.intel.com/en-us/articles/split-complex-real-real-support-for-2d3d-ffts-in-intel-mkl/"><b>Split Complex (real real) support for 2D/3D FFTs</b></a></li>
<li><a href="http://software.intel.com/en-us/articles/new-fast-basic-random-number-generator-sfmt19937-in-intel-mkl/"><b>New fast basic random number generator SFMT19937</b></a></li>
<li><b><a href="http://software.intel.com/en-us/articles/routine-for-linear-fraction-transformation-of-vectors/">New Routine for Linear Fraction Transformation of vectors</a></b></li>
</ul>
<p><br /><a href="http://software.intel.com/en-us/articles/a-new-directory-hierarchy-in-intel-mkl-package/"><b>Directory Changes in the Intel® MKL 10.3 Beta</b></a><b> <br /></b><a href="http://software.intel.com/en-us/articles/intel-mkl-103-bug-fixes/"><b>List of bugs fixed in this release</b></a><br /><br /><br /><b>Registration and Download:</b></p>
<p>1.     Review the <a href="http://software.intel.com/en-us/articles/intel-mkl-103-system-requirements/">Intel<sup>®</sup> MKL 10.3 Beta system requirements</a> at the end of this document.</p>
<p>2.     <a href="https://registrationcenter.intel.com/RegCenter/BetaForm.aspx?ProductID=1459">Click here to begin the registration process</a>.</p>
<p>3.     Provide a valid email address. Installation information will be sent to your email account.</p>
<p>4.     Click the Submit button to obtain a serial number and the URL to download the beta copy.</p>
<p> </p>
<p><b>Additional Documents</b></p>
<p>
<table width="701" cellpadding="0" cellspacing="0" border="1">
<tbody>
<tr>
<td width="134" valign="top">
<p align="center">Link to documents</p>
</td>
<td width="525" valign="top">
<p align="center">Description</p>
</td>
</tr>
<tr>
<td width="134">
<p align="center"> </p>
<p align="center"><a href="http://software.intel.com/en-us/articles/intel-mkl-103-install-guide/">Installation Guide</a></p>
</td>
<td width="525" valign="top">
<p>This document explains how to install and configure for use the Intel<sup>®</sup> MKL 10.3 Beta product. Installation is a multi-step process. Please read this document in its entirety before beginning and follow the steps in sequence.</p>
</td>
</tr>
<tr>
<td width="134">
<p align="center"><a href="http://software.intel.com/en-us/articles/intel-mkl-103-getting-started/">Getting Started Guide</a></p>
</td>
<td width="525" valign="top">
<p>To get started using the library and to find information on APIs and building an application with Intel<sup>®</sup> MKL.</p>
</td>
</tr>
<tr>
<td width="134">
<p align="center"><a href="http://software.intel.com/en-us/articles/intel-mkl-103-release-notes/">Release Notes</a></p>
</td>
<td width="525" valign="top">
<p>This document provides system requirements, installation instructions, issues and limitations, and legal information.</p>
</td>
</tr>
</tbody>
</table>
</p>
<p><br /><b><br />Beta Support and feedback:<br /></b><br />Submit problem reports, usage questions and general feedback to <a href="http://software.intel.com/en-us/forums/intel-math-kernel-library/">Intel MKL User Forum</a>, this forum is exclusively to discuss Intel<sup>®</sup> MKL related information with other developers and Intel engineers.</p>
<p>At the end of beta program a <b>survey</b> will be sent out to all participants. The survey will ask questions about your target platform, new feature usage, Intel MKL product quality and documentation.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-math-kernel-library-103-beta/</link>
      <pubDate>Fri, 02 Jul 2010 07:30:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-math-kernel-library-103-beta/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-math-kernel-library-103-beta/</guid>
      <category>Parallel Programming</category>
      <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® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
  </channel></rss>
