<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Wed, 25 Nov 2009 14:12:21 -0800 -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://software.intel.com/en-us/articles/dpd-general/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/dpd-general/errors-diagnostics/</link>
    <description></description>
    <language>en-us</language>
    <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>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>