<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Sun, 12 Feb 2012 05:31:42 -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-cluster-toolkit-for-linux-kb/type/technical-notes/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles Feed</title>
    <link>http://software.intel.com/en-us/articles/intel-cluster-toolkit-for-linux-kb/type/technical-notes/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Intel® MKL: What&amp;#39;s deprecated?</title>
      <description><![CDATA[ <p><strong>Please see below for details on the deprecated functionalities in Intel® Math Kernel Library (Intel® MKL).</strong></p>
<p><b><span >Forthcoming Intel® MKL 11.0</span></b> (Expected date of release: Autumn 2012)</p>
<p >•  <a href="http://software.intel.com/en-us/articles/mkl-11-backward-incompatibility-with-mkl-10_2_3/">Intel® MKL 11.0 will have backward incompatibility with Intel® MKL 10.2 update 3</a></p>
<p >•  <a href="http://software.intel.com/en-us/articles/openmp-static-library-deprecation-in-intelr-mkl-on-microsoft-windows/">Open MP static library on Microsoft* Windows</a></p>
<p >•  <a href="http://software.intel.com/en-us/articles/mkl-gmp-functions-are-deprecated">GMP* Arithmetic functions</a></p>
<p >•  <a href="http://software.intel.com/en-us/articles/intel-mkl-reference-manual-was-removed-from-product-package/">Intel® MKL Reference Manual will be removed from product package</a></p>
<p >•  <a href="http://software.intel.com/en-us/articles/the-default-optimized-code-at-ia-32-will-be-removed-in-the-intel-mkl-110/">Intel® Pentium III will no longer be supported</a></p>
<p >•  <a href="http://software.intel.com/en-us/articles/system-requirements-change-in-intel-mkl/">Red Hat* EL4 and PGI* Fortran 10.x support will be dropped</a></p>
<p >•  <a href="http://software.intel.com/en-us/articles/pgi-fortran-77-will-not-be-supported/">PGI* Fortran 77 support will be removed</a></p>
<p> </p>
<p> </p>
<p> </p>
<p align="center"> </p>
<p align="center"> </p>
<p> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-mkl-whats-deprecated/</link>
      <pubDate>Thu, 01 Dec 2011 10:30:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-mkl-whats-deprecated/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-mkl-whats-deprecated/</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>NumPy User Note</title>
      <description><![CDATA[ <p><b><br />NumPy  Application Note</b><br /><br /><b>Step 1 - Overview</b><br /><br />This guide is intended to help current NumPy users to take advantage of Intel® <a href="http://en.wikipedia.org/wiki/Math_Kernel_Library">Math Kernel Library</a> (Intel® MKL). NumPy automatically maps operations on vectors and matrices to the BLAS and LAPACK functions wherever possible.  Since Intel® MKL supports these de-facto interfaces, NumPy can benefit from MKL optimizations through simple modifications to the NumPy scripts.<br /><br /><a href="http://en.wikipedia.org/wiki/NumPy">NumPy</a> is the fundamental package required for scientific computing with Python. It consists of:</p>
<ul type="disc">
<li>a powerful N-dimensional array object</li>
<li>sophisticated (broadcasting) functions</li>
<li>tools for integrating C/C++ and Fortran code</li>
<li>useful linear algebra, Fourier transform, and random number capabilities.</li>
</ul>
<p>Besides its obvious scientific uses, NumPy can also be used as an efficient multi-dimensional container of generic data.</p>
<p>For more information on NumPy, please visit http://NumPy.scipy.org/<br /><br /><b>Version Information</b><br /><br />This application note was created to help NumPy users to make use of the latest versions of Intel MKL on Linux platforms.</p>
<p>The instructions given in this articles apply to Intel MKL 10.3 and above and Intel Compiler 11.0 and above.<br /><br /> <br /><b>Step 2 - Downloading NumPy Source Code</b><br /><br />The NumPy source code can be downloaded from:</p>
<p>http://NumPy.scipy.org/<br /><br /><b>Prerequisites</b><br /><br />Intel MKL can be obtained from the following options:</p>
<p>Download a FREE evaluation version of the Intel MKL product.<br />Download the FREE non-commercial* version of the Intel MKL product.<br /><br />All of these can be obtained at: <a href="http://www.intel.com/cd/software/products/asmo-na/eng/307757.htm">Intel® Math Kernel Library product web page</a>.<br /><br />Intel® MKL is also bundled with the following products<br /><br /><a href="http://software.intel.com/en-us/articles/intel-parallel-studio-xe/">Intel® Parallel Studio XE 2011</a><br /><a href="http://software.intel.com/en-us/articles/intel-composer-xe/">Intel Parallel Composer XE 2011</a><br /><a href="http://software.intel.com/en-us/articles/intel-cluster-studio/">Intel Cluster Studio 2011</a><br /><br /><b>Step 3 - Configuration</b><br /><br />Use the following commands to <b>extract the NumPy tar files</b> from the downloaded NumPy-x.x.x.tar.gz.</p>
<pre name="code" class="shell">1.	$gunzip numpy-x.x.x.tar.gz 
2.	$tar -xvf numpy-x.x.x.tar </pre>
<p> <br />The above will create a directory named numpy-x.x.x<br /><br />Make sure that C++ and FORTRAN compilers are installed and they are in PATH. Also set LD_LIBRARY_PATH to your compiler (C++ and FORTRAN), and MKL libraries.<br /><br /><b>Step 4 - Building NumPy</b><br /><br />Change directory to numpy-x.x.x<br />Create a site.cfg from the existing one<br /> <br />Edit site.cfg as follows:</p>
<p>Add the following lines to site.cfg in your top level NumPy directory to use Intel® MKL, if you are building on Intel 64 platform:</p>
<pre name="code" class="cpp">[mkl]<br />library_dirs = /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64<br />include_dirs = /opt/intel/composer_xe_2011.sp1.6.233/mkl/include<br />mkl_libs = mkl_rt<br />lapack_libs =</pre>
<p><br /><br />If you are building NumPy for 32 bit, please add as the following</p>
<pre name="code" class="cpp">[mkl]
library_dirs = /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/ia32<br />include_dirs = /opt/intel/composer_xe_2011_sp1.6.233/mkl/include
mkl_libs = mkl_rt<br />lapack_libs = </pre>
<p>Modify cc_exe in numpy/distutils/intelccompiler.py to be something like:</p>
<pre name="code" class="cpp">self.cc_exe = 'icc -O3 -g -fPIC -fp-model strict -fomit-frame-pointer -openmp -xhost'

</pre>
<p>Here we use, -O3, optimizations for speed and enables more aggressive loop transformations such as Fusion, Block-Unroll-and-Jam, and collapsing IF statements, -openmp for OpenMP threading and -xhost option tells the compiler to generate instructions for the highest instruction set available on the compilation host processor. If you are using the ILP64 interface, please add -DMKL_ILP64 compiler flag.</p>
<p>Run icc --help for more information on processor-specific options, and refer Intel Compiler documentation for more details on the various compiler flags.</p>
<p>Compile and install NumPy with the Intel compiler: (on 64-bit platforms replace "intel" with "intelem")</p>
<pre name="code" class="cpp">python setup.py config --compiler=intel build_clib --compiler=intel build_ext --compiler=intel install

</pre>
<p><br />If you build NumPY for Intel64 bit platforms:</p>
<pre name="code" class="shell">$export LD_LIBRARY_PATH=/opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64:/opt/intel/composer_xe_2011_sp1.6.233/compiler/lib/intel64:$LD_LIBRARY_PATH

</pre>
<p>If you build NumPY for ia32 bit platforms:</p>
<pre name="code" class="shell">$export LD_LIBRARY_PATH=/opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/ia32:/opt/intel/composer_xe_2011_sp1.6.233/compiler/lib/ia32:$LD_LIBRARY_PATH

</pre>
<p>It is possible that LD_LIBRARY_PATH causes a problem, if you have installed MKL and Composer XE in other directories than the standard ones. The only solution I've found that always works is to build Python, NumPy and SciPy inside an environment where you've set the LD_RUN_PATH variable, e.g:</p>
<pre name="code" class="cpp">$export LD_RUN_PATH=~/opt/lib:~/intel/composer_xe_2011_sp1.6.233/compiler/lib:~/intel/composer_xe_2011_sp1.6.233/mkl/lib/ia32
</pre>
<p><br /><br /><strong>Note:</strong> We recommend users to use arrays with 'C' ordering style which is row-major, which is default than Fortran Style which is column-major, and this is because NumPy uses CBLAS and also to get better performance.<br /><br /><strong>Appendex A: Example:</strong> <br /><br />Please see below an example Python script for matrix multiplication that you can use Numply installed with Intel MKL which has been provided for illustration purpose.</p>
<pre name="code" class="python">import numpy as np
import time

N = 6000
M = 10000

k_list = [64, 80, 96, 104, 112, 120, 128, 144, 160, 176, 192, 200, 208, 224, 240, 256, 384]

def get_gflops(M, N, K):
	return M*N*(2.0*K-1.0) / 1000**3

np.show_config()

for K in k_list:
	a = np.array(np.random.random((M, N)), dtype=np.double, order='C', copy=False)
	b = np.array(np.random.random((N, K)), dtype=np.double, order='C', copy=False)
	A = np.matrix(a, dtype=np.double, copy=False)
	B = np.matrix(b, dtype=np.double, copy=False)

	C = A*B

	start = time.time()

	C = A*B
	C = A*B
	C = A*B
	C = A*B
	C = A*B

	end = time.time()

	tm = (end-start) / 5.0

	print "{0:4}, {1:9.7}, {2:9.7}".format(K, tm, get_gflops(M, N, K) / tm)
</pre>
<br />
<p><strong>Appendix B: Performance Comparison<br /><br /><br /></strong></p>
<p ><br /><img height="500" width="530" src="http://software.intel.com/file/40584" alt="numpy-matrix-multiply.jpg" title="numpy-matrix-multiply.jpg" /><br /><br /><br /><br /><img height="500" width="530" src="http://software.intel.com/file/41176" alt="numpy_mkl_svd_comparison.jpg" title="numpy_mkl_svd_comparison.jpg" /><br /><br /><img height="500" width="530" src="http://software.intel.com/file/41175" alt="numpy_mkl_lu_comparison.jpg" title="numpy_mkl_lu_comparison.jpg" /> <br /><br /><img height="500" width="530" src="http://software.intel.com/file/41174" alt="numpy_mkl_cholesky_comparison.jpg" title="numpy_mkl_cholesky_comparison.jpg" /><br /><br />Please click <a href="http://software.intel.comjavascript:void(0)" onclick="ndownload('http://software.intel.com/file/41177')"><strong>Examples.py</strong></a> to download the examples for LU, Cholesky and SVD.<br /><br /><br /><br /> <b></b><a></a></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/numpy-user-note/</link>
      <pubDate>Tue, 16 Aug 2011 10:30:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/numpy-user-note/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/numpy-user-note/</guid>
      <category>Intel® C++ Compiler for Linux* 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® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>How to prevent source code full path location information from being visible in an executable</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><b>Problem : </b>When using the -openmp  or -parallel compiler options under linux* or Mac OS* X, or the /Qopenmp or /Qparallel options under Windows, the resulting executable files contain the full pathnames to the source files for each source file containing an OpenMP or Parallel region.   This was done to allow Intel profiling and correctness checking tools to be able to find and display source information in the analysis tools.<br /><br /><br /><b>Environment : </b>Windows*, Linux*, Mac OS* X, all compilers since 9.1 versions<br /><br /><b>Root Cause : </b><br />The Intel compilers by default included source file full path information so that Intel analysis tools could find source files during analysis for correctness or performance.<br /><br /><b>Resolution : </b><br />With the release of Intel Composer XE ( aka version 12.0 ) an option was included to allow removing this source path information from the executable header information:<br /><br />Linux and Mac OS X:   -no-parallel-source-info  compiler option should be used<br />Windows:     /Qparallel-source-info-   compiler option should be used<br /><br />These options are only available in the 12.0 aka Composer XE compiler products.  If you are using an older version, please upgrade to 12.0.<br /><br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-prevent-source-code-full-path-location-information-from-being-visible-in-an-executable/</link>
      <pubDate>Thu, 16 Dec 2010 20:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-prevent-source-code-full-path-location-information-from-being-visible-in-an-executable/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-prevent-source-code-full-path-location-information-from-being-visible-in-an-executable/</guid>
      <category>Intel® Parallel Composer</category>
      <category>Intel® Cluster Toolkit Compiler</category>
      <category>Intel® Compilers</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® 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® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>Remote Terminal MPI Debug using Intel(R) Debugger</title>
      <description><![CDATA[ <br />
<p><b>Introduction : <br /></b><br />By default the Intel(R) Debugger requires the ability to open either a GUI or at least a dedictaed separate xterm window. This article describes how to launch a command line verion of MPI enabled IDB in a command line only terminal window. <br /><br /><br /><b>Version : </b><br />This article applies to the Intel(R) Debugger for Linux* v11.0 and higher<br />The proposed command ine and testing of this approach was based on Intel(R) MPI Library 3.x, but newer versions should work as well.<br />The screen command needs to be available<br /><br /><b>Configuration Set Up : </b><br />The usage model this article applies to is as follows:<br /><br />- network based Linux MPI cluster with application possibly running distributed over several nodes</p>
<p>- only available access to the cluster is via remote terminal login (puTTY, ssh, ...)</p>
<p>- no X window output redirection to the login machine is possible <br /><br />- Please ensure to IDB_PARALLEL_SHELL set to enable multi-node debugging<br /><br /> "export IDB_PARALLEL_SHELL=/usr/bin/ssh"<br /><br /><b>Solution:<br /></b><br />- Edit mpiexec.py launch script in the bin directory of your Intel(R) MPI Library installation<br />- Launch debugger with "screen mpiexec -idb -n &lt;node number&gt; &lt;debuggee executable&gt;"<br /> <br /><b>Python Script Changes : </b><br /><br />1. In the line that defines dbg_cmd replace "xterm" with "screen" and remove "-e" in mpiexec.py. In addition remove the "&amp;" at the end of the line.<br /><br />E.g. replace the line <br /><br />dbg_cmd = 'xterm -e ' + tv_exe + ' -pid ' + `os.getpid()` + ' -mpi2 -parallel /usr/bin/python &amp;'<br /><br />with<br /><br />dbg_cmd = 'screen' + tv_exe + ' -pid ' + `os.getpid()` + ' -mpi2 -parallel /usr/bin/python'<br /><br />2. Replace the line<br /><br />os.system(dbg_cmd)<br /><br />with the following lines:<br /><br />cpid = os.fork()<br /><br />if (cpid == 0):<br />os.system(dbg_cmd)<br />sys.exit(0)</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/remote-terminal-mpi-debug/</link>
      <pubDate>Wed, 15 Dec 2010 19:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/remote-terminal-mpi-debug/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/remote-terminal-mpi-debug/</guid>
      <category>Tools</category>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® MPI Library for Linux* 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 use SLURM* PMI with the Intel® MPI Library for Linux*?</title>
      <description><![CDATA[ <p><b>Introduction : </b><br /><br />Intel® MPI Library provides PMI virtualization mechanism. It means that users may utilize third party implementations of the PMI library.<br /><br /><b>Version : <br /></b><br />Intel® MPI Library 4.0 Update 1 for Linux*<br /><br /><b>Running the Application: </b><br /><br />To use SLURM's implementation of the PMI library do the following:<br />• Set the I_MPI_PMI_LIBRARY environment variable to desired PMI library specifying the full path to the libpmi.so library<br />• Use srun utility to start an application. In this case Intel® MPI Library Process Manager is not used and only Slurm utilities control the job (launch, control, terminate)<br /><br /><b>Benefits : </b><br /><br />Tight integration is reached with a job scheduler if a PMI library integrated with it is used. <br /><br /><b>Known Issues or Limitations : </b><br /><br />• SLURM’s implementation of the PMI library does not provide enough functionality to enable pinning feature of the Intel® MPI Library<br />• Set the I_MPI_FABRICS environment variable explicitly or set I_MPI_CHECK_DAPL_PROVIDER_MISMATCH=off to make sure that fast fabric will be initialized correctly<br /><br /><strong>Example : <br /></strong><br />$ export I_MPI_PMI_LIBRARY=/full/path/to/slurm/libpmi.so<br />$ export I_MPI_FABRICS=shm:dapl<br />$ srun -N &lt;num_nodes&gt; -n &lt;num_processes&gt; ./a.out<br /><br />This approach was checked with Slurm-1.2.21 on Intel® 64 based system.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-use-slurm-pmi-with-the-intel-mpi-library-for-linux/</link>
      <pubDate>Tue, 30 Nov 2010 10:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-use-slurm-pmi-with-the-intel-mpi-library-for-linux/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-use-slurm-pmi-with-the-intel-mpi-library-for-linux/</guid>
      <category>Intel® Cluster Toolkit</category>
      <category>Intel® Cluster Toolkit Compiler</category>
      <category>Intel® MPI Library</category>
      <category>Intel® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® MPI Library for Linux* Knowledge Base</category>
    </item>
    <item>
      <title>New fast basic random number generator SFMT19937 in Intel MKL</title>
      <description><![CDATA[ <br /><br />Intel MKL 10.3 introduced a new basic generators: a SIMD friendly Fast Mersenne Twister pseudorandom number <strong>SFMT19937</strong> generator.<br /><br /><strong>SFMT19937</strong> is analogous to Mersenne Twister (MT) basic generators. But it can take the advantage of SIMD instructions and provide the fast implementation in the processors. <br /><br /><br />To learn more information on SFMT algorithm, please check the bellow article.<br /><br /><em>Saito, M., and Matsumoto, M. SIMD-oriented Fast Mersenne Twister: a 128-bit Pseudorandom Number Generator. Monte Carlo and Quasi-Monte Carlo Methods 2006, Springer, Pages 607 – 622, 2008.<br /></em><a href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ARTICLES/earticles.html"><em>http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ARTICLES/earticles.html</em></a><br /><br /><br />The following is an example application using Intel MKL SFMT19937<br /><br /><br />
<pre name="code" class="cpp">#include &lt;stdio.h&gt;
#include “mkl_vsl.h”
 
int main()
{
   double r[1000]; /* buffer for random numbers */
   double s; /* average */
   VSLStreamStatePtr stream;
   int i, j;
    
   /* Initializing */        
   s = 0.0;
   vslNewStream( &amp;stream, VSL_BRNG_SFMT19937, 777 );
    
   /* Generating */        
   for ( i=0; i&lt;10; i++ );
   {
      vdRngGaussian( VSL_RNG_METHOD_GAUSSIAN_ICDF, stream, 1000, r, 5.0, 2.0 );
      for ( j=0; j&lt;1000; j++ );
      {
         s += r[j];
      }
   }
   s /= 10000.0;
    
   /* Deleting the stream */        
   vslDeleteStream( &amp;stream );
    
   /* Printing results */        
   printf( “Sample mean of normal distribution = %f\n”, s );
    
   return 0;
}<br /><br /><br />
</pre>
<br /><br /> ]]></description>
      <link>http://software.intel.com/en-us/articles/new-fast-basic-random-number-generator-sfmt19937-in-intel-mkl/</link>
      <pubDate>Sat, 06 Nov 2010 11:30:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/new-fast-basic-random-number-generator-sfmt19937-in-intel-mkl/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/new-fast-basic-random-number-generator-sfmt19937-in-intel-mkl/</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>Problem with Intel(R) MKL DSS Single Precision version</title>
      <description><![CDATA[ <div><br /></div>
<div id="art_pre_template"><b>Reference Number : </b>DPD200192258<br /><br /><br /><b>Version : </b>versions 10.2 Update 6<b> </b>and 10.3 beta<br /><br /><br /><b>Product : </b>Intel(R) MKL<br /><br /><br /><b>Operating System : </b>all supported by Intel(R) MKL at this moment<br /><br /><br /><b>Problem Description : </b><br /><br /></div>
<div id="art_pre_template">The F90 DSS interface is broken because of currently DSS API supports Double Precision data types only. <br />Compilation DSS interfaces with Single Precision Data types will produces something like the following compilation errors<br /><br />dss_sym_f90.f90(78): error #6633: The type of the actual argument differs from the type of the dummy argument. [VALUES]<br />dss_sym_f90.f90(82): error #6633: The type of the actual argument differs from the type of the dummy argument.</div>
<div id="art_pre_template">[RHS]<br />dss_sym_f90.f90(82): error #6633: The type of the actual argument differs from the type of the dummy argument. [SOLUTION]<br />dss_sym_f90.f90(89): error #6633: The type of the actual argument differs from the type of the dummy argument. [STATOUT]<br /><br /></div>
<div id="art_pre_template"><b>Workaround: </b></div>
<div id="art_pre_template"><b><br /></b>As a temporarily workaround, we would recommend you to do the following:<br />1) make the call call DSS_CREATE( handle, MKL_DSS_SINGLE_PRECISION)<br />and then<br />2) manually change the API of these functions ( mkl_dss.f90 which is located in &lt;mklroot\include&gt; firectory ) by replacing REAL(KIND=8) by REAL(KIND=4) into those routines, which have been used into your application.<br /><br />As an example, please see the <a href="http://software.intel.com/en-us/forums/showthread.php?t=77093">MKL Forum tread</a>, where the similar problem has been discussed.</div>
<div id="art_pre_template"><br /><b>Resolution Status : </b><br />fixed the next Update - 10.2 Update 7 and 10.3 Update 1<br /><br /><br /><i>[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.]</i></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/problem-with-intelr-mkl-dss-single-precision-version/</link>
      <pubDate>Tue, 12 Oct 2010 11:30:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/problem-with-intelr-mkl-dss-single-precision-version/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/problem-with-intelr-mkl-dss-single-precision-version/</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>Using Intel® MKL in GROMACS</title>
      <description><![CDATA[ <p><b class="sectionHeading">Step 1 - Overview</b></p>
<p >This guide is intended to help the current GROMACS users to potentialy improve performance by utilizing Intel® Math Kernel Library (Intel® MKL). This article explains how to build 64-bit GROMACS with Intel MKL for Intel64 based applications.</p>
<p >GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.</p>
<p>[Reference: <a href="http://www.gromacs.org/About_Gromacs">http://www.gromacs.org/About_Gromacs</a> *]</p>
<p><b>Version Information</b></p>
<p >This application note was created to help users who use GROMACS to also incorporate the latest versions of Intel MKL 10.3.x or higher on Linux* platforms on Intel® Xeon® * processor-based systems. Specifically, we'll address Intel MKL version 10.3.1.</p>
<p>This application note applies to Intel® Composer XE 2011 and GROMACS 4.0.7.</p>
<p> </p>
<p><b class="sectionHeading">Step 2- Downloading GROMACS Source Code </b></p>
<p><b>Prerequisites:<br /></b></p>
<ol>
<li>
<div >Intel® MKL contains highly optimized BLAS, LAPACK, and FFT and also the wrappers for FFTW, To get evaluation/ non -commercial/ licensed copy of Intel MKL, refer to  <a href="http://software.intel.com/en-us/intel-mkl/">Intel® Math Kernel Library </a>product Page.</div>
</li>
<li>To get evaluation/non-commercial/licensed copy of Intel compilers, refer to  <a href="http://software.intel.com/en-us/intel-compilers/">Intel C++ and Fortran compilers</a> product page (Intel MKL and Intel Compilers are now available in a single package - <a href="http://software.intel.com/en-us/articles/intel-composer-xe/">Intel Composer XE 2011</a>). </li>
<li>To get GROMACS - <a href="http://www.gromacs.org/">http://www.gromacs.org/</a></li>
</ol>
<p ><b>Note:</b> This application note is written specifically for use with the Intel Compilers. Though using Intel MKL with GROMACS built with other compilers is also possible.</p>
<p><b>Unpack:</b></p>
<p> Use the following commands to <b>extract the GROMACS</b> files:</p>
<pre name="code" class="cpp"> tar -xf gromacs-x.x.x.tar.gz

</pre>
<p><br />This will create a directory called gromacs-x.x.x. </p>
<p><b class="sectionHeading"><br />Step 3 - Building GROMACS</b></p>
<p><strong>Update configure:</strong></p>
<p>Modify <strong><em>configure.ac</em></strong>  from</p>
<pre name="code" class="cpp">mkl*)

###########

# Intel Math Kernel Library version 6 and later.

##########

AC_MSG_CHECKING([for mkl_dfti.h])

AC_TRY_COMPILE([#include&lt;mkl_dfti.h&gt;],,AC_MSG_RESULT(yes),AC_MSG_ERROR([Cannot find mkl_dfti.h header from Intel Math Kernel Library&gt;=6.0.]\

))

## Check for library

# AC_CHECK_LIB([guide],main,,AC_MSG_ERROR([Cannot find libguide (Intel MKL)]))

AC_CHECK_LIB([mkl],DftiComputeForward,,

AC_MSG_ERROR([Cannot find Intel Math Kernel Library &gt;= 6.0]))

MDLIB_LIBOBJS="$MDLIB_LIBOBJS gmx_fft_mkl.lo"

;;

</pre>
<p><br /><strong>to</strong></p>
<pre name="code" class="cpp">mklfftw3*)

###########

# FFTW3 wrappers in Intel Math Kernel Library version 6 and later.

##########

AC_MSG_CHECKING([for fftw3.h])

AC_TRY_COMPILE([#include&lt;fftw3.h&gt;],,AC_MSG_RESULT(yes),AC_MSG_ERROR([Cannot find fftw3.h header from Intel Math Kernel Library&gt;=6.0.]\

))

## Check for library

AC_CHECK_LIB([mkl_intel_ilp64],fftw_execute,LIBS="-lmkl_intel_thread -lmkl_core -liomp5 -lpthread $LIBS",

AC_MSG_ERROR([Cannot find Intel Math Kernel Library &gt;= 6.0]),[-lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread])

MDLIB_LIBOBJS="$MDLIB_LIBOBJS gmx_fft_fftw3.lo"

;;

mkl*)

###########

# Intel Math Kernel Library version 6 and later.

##########

AC_MSG_CHECKING([for mkl_dfti.h])

AC_TRY_COMPILE([#include&lt;mkl_dfti.h&gt;],,AC_MSG_RESULT(yes),AC_MSG_ERROR([Cannot find mkl_dfti.h header from Intel Math Kernel Library&gt;=6.0.]\

))

## Check for library

AC_CHECK_LIB([mkl_intel_ilp64],DftiComputeForward,LIBS="-lmkl_intel_thread -lmkl_core -liomp5 -lpthread $LIBS",

AC_MSG_ERROR([Cannot find Intel Math Kernel Library &gt;= 6.0]),[-lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread])

MDLIB_LIBOBJS="$MDLIB_LIBOBJS gmx_fft_mkl.lo"

;;

</pre>
<p>Run <strong>autoreconf</strong> without any parameters. Autoconf (that includes autoreconf) could be found here <a href="http://www.gnu.org/software/autoconf/">http://www.gnu.org/software/autoconf/</a></p>
<p><b>Set environment: </b></p>
<ul>
<li>Make sure that C/C++ and Fortran compilers are installed properly and &lt;<strong>PATH</strong>&gt; environment variable is set to compiler installation directory.</li>
<li>Set &lt;<strong>LD_LIBRARY_PATH&gt; </strong>to compiler(C/C++ or Fortran) and Intel MKL library installation directory. </li>
<li>Make sure that  &lt;<strong>MKLROOT&gt;</strong>  environment variable to point to the MKL installation directory on your system.</li>
<li>Another easy option to configure Intel Compilers and Intel MKL environment to build 64-bit application is to run <strong>mklvars.sh</strong> script file, which is part of <strong><em>&lt;MKLROOT&gt;/bin</em></strong> directory </li>
<li>Also make sure that other environment variables like <strong>CC</strong>, <strong>CXX</strong>, <strong>F77</strong>, <strong>CFLAGS</strong>, <strong>CPPFLAGS, LDFLAGS</strong> are set as below.</li>
</ul>
<pre name="code" class="cpp">export CC=icc

export CXX=icc

export F77=ifort

export CFLAGS="-O3 -ipo- -static -std=c99 -fPIC -DMKL_LP64 -DM_PI=3.1415926535897932384"

export CPPFLAGS="-I$MKLROOT/include -I$MKLROOT/include/fftw"

export LDFLAGS="-L$MKLROOT/lib/intel64 -L$MKLROOT/../compiler/lib/intel64"

export LD_LIBRARY_PATH="$MKLROOT/lib/intel64:$MKLROOT/../compiler/lib/intel64:$LD_LIBRARY_PATH"

</pre>
<p><br /><strong>Configure and make:</strong></p>
<p>Build GROMACS and install it in the standard place</p>
<pre name="code" class="cpp">configure --with-fft=mklfftw3

make

make install 
</pre>
<p><b class="sectionHeading">Step 4 - Running GROMACS</b></p>
<p>Add standard GROMACS path to environment variable <strong>&lt;PATH&gt;</strong></p>
<p>You should be able to run GROMACS. For more information about GROMACS, refer to <a href="http://www.gromacs.org/About_Gromacs">http://www.gromacs.org/About_Gromacs</a>*</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/using-intel-mkl-in-gromacs/</link>
      <pubDate>Sun, 26 Sep 2010 11:30:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/using-intel-mkl-in-gromacs/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/using-intel-mkl-in-gromacs/</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>Summary of API differences between Intel® MKL PARDISO and University of Basel PARDISO* 4.0.0</title>
      <description><![CDATA[ <p><b>Introduction</b></p>
<p>The release of PARDISO 4.0.0 from the University of Basel is not backward compatible and thus introduces some incompatibilities with the implementation of PARDISO that is available with the Intel® Math Kernel Library. This article outlines those places where the two interfaces have diverged.</p>
PARDISO 4.0.0 introduces the additional routine <i>pardisoinit</i><i> </i>which is to be called before the <i>pardiso</i><i> </i>routine. Intel® MKL PARDISO does not have such a routine. <br /><br />In version 10.2 Update 6, Intel® MKL PARDISO introduces an additional interface function: <i>pardiso_64</i>. This interface is identical to that of <i>pardiso</i> except that it accepts and returns all integer data in the INTEGER*8 type. This new interface is supported only in the 64-bit Intel MKL libraries. PARDISO will return an error code (-12) if a program calling <i>pardiso_64</i> is linked to the 32-bit libraries. <br /><br /><b>Routine arguments differences </b><br /><b></b><br />PARDISO* 4.0.0 has additional argument <i>dparm</i> array of type REAL and length 64 that is used for a multi-recursive iterative linear solver. Intel® MKL PARDISO has no support for this solver and no argument <i>dparm</i> in the API. The two tables below outline the differences in the arguments to the respective PARDISO functions and the differences in interpretation of the IPARM array. A full description of the arguments and IPARM array for Intel MKL can be found in the <a href="http://software.intel.com/en-us/articles/pardiso-parameter-table/">PARDISO Parameter Tables</a>. <br /><br /><b>PARDISO arguments compared</b> 
<table cellpadding="0" cellspacing="0" border="1">
<tbody>
<tr>
<td width="159" valign="top"><br />Argument name</td>
<td width="160" valign="top"><br />Argument type</td>
<td width="160" valign="top"><br />PARDISO* 4.0.0</td>
<td width="160" valign="top"><br />Intel® MKL PARDISO</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>pt(64)</i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td colspan="2" width="319"><br />Content of array is different (for internal use only)</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>maxfct</i><i></i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td colspan="2" width="319"><br />same</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>mnum</i><i></i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td colspan="2" width="319"><br />same</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>mtype</i><i></i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td colspan="2" width="319"><br />same</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>phase</i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td width="160" valign="top"><br />Use iparm(26) to split forward/backward substitutions</td>
<td width="160" valign="top"><br />Stages 331-333 added to perform forward, diagonal, and backward substitution</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>n</i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td colspan="2" width="319"><br />same</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>a</i></td>
<td width="160" valign="top"><br />REAL/COMPLEX</td>
<td colspan="2" width="319"><br />same</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>ia</i><i>(n+1)</i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td width="160" valign="top"><br /></td>
<td width="160" valign="top"><br />Supports 0-based indexing</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>ja</i><i>(*)</i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td width="160" valign="top"><br /></td>
<td width="160" valign="top"><br />Supports 0-based indexing</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>perm(n)</i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td colspan="2" width="319"><br />same</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>nrhs</i><i></i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td colspan="2" width="319"><br />same</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>iparm</i><i>(64)</i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td colspan="2" width="319" valign="top"><br />Meaning of array entries is different (see the table below)</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>msglvl</i><i></i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td width="160" valign="top"><br /></td>
<td width="160" valign="top"><br />Cannot print multi-recursive iterative solver statistics (no such solver)</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>b(n,nrhs)</i></td>
<td width="160" valign="top"><br />REAL/COMPLEX</td>
<td colspan="2" width="319"><br />same</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>x(n,nrhs)</i></td>
<td width="160" valign="top"><br />REAL/COMPLEX</td>
<td colspan="2" width="319"><br />same</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>error</i></td>
<td width="160" valign="top"><br />INTEGER</td>
<td width="160" valign="top"><br />Error code -9 is not used <br />-10 means no license file found <br />-11 means license file expired <br />-12 means wrong username or hostname</td>
<td width="160" valign="top"><br />-9 means not enough memory for OOC <br />-10 means problems with OOC temp files <br />-11 means read/write problems with the OOC data file <br />Error codes -12, -100, -101, -102, -103 are not used</td>
</tr>
<tr>
<td width="159" valign="top"><br /><i>dparm</i><i>(64)</i></td>
<td width="160" valign="top"><br />REAL</td>
<td width="160" valign="top"><br /></td>
<td width="160" valign="top"><br />Not present in the argument list</td>
</tr>
</tbody>
</table>
<br /><br /><b>The IPARM arrays compared</b> 
<table cellpadding="0" cellspacing="0" border="1">
<tbody>
<tr>
<td width="54" valign="top"><br />Id</td>
<td colspan="2" width="293" valign="top"><br />PARDISO* 4.0.0</td>
<td width="291" valign="top"><br />Intel® MKL PARDISO</td>
</tr>
<tr>
<td width="54" valign="top"><br />2</td>
<td colspan="2" width="293" valign="top"><br />Minimum degree and nested dissection algorithm</td>
<td width="291" valign="top"><br />Minimum degree, nested dissection and parallel version of the nested dissection algorithm</td>
</tr>
<tr>
<td width="54" valign="top"><br />3</td>
<td colspan="2" width="293" valign="top"><br />Number of processors</td>
<td width="291" valign="top"><br />Not used (MKL_NUM_THREADS environment variable and functions are used instead)</td>
</tr>
<tr>
<td width="54" valign="top"><br />12</td>
<td colspan="2" width="293" valign="top"><br />Solving the system with transpose matrix</td>
<td width="291" valign="top"><br />Not used</td>
</tr>
<tr>
<td width="54" valign="top"><br />24</td>
<td colspan="2" width="293" valign="top"><br />Parallel numerical factorization</td>
<td width="291" valign="top"><br />Not used</td>
</tr>
<tr>
<td width="54" valign="top"><br />25</td>
<td colspan="2" width="293" valign="top"><br />Parallel forward/backward solve</td>
<td width="291" valign="top"><br />Not used</td>
</tr>
<tr>
<td width="54" valign="top"><br />26</td>
<td colspan="2" width="293" valign="top"><br />Splitting of forward/backward solve</td>
<td width="291" valign="top"><br />Not used (use argument phase instead)</td>
</tr>
<tr>
<td width="54" valign="top"><br />27</td>
<td width="292" valign="top"><br />Not used</td>
<td colspan="2" width="292" valign="top"><br />Matrix checker</td>
</tr>
<tr>
<td width="54" valign="top"><br />28</td>
<td colspan="2" width="293" valign="top"><br />Parallel reordering for METIS</td>
<td width="291" valign="top"><br />Single or double precision of PARDISO (for parallel reordering use iparm(2))</td>
</tr>
<tr>
<td width="54" valign="top"><br />29</td>
<td colspan="2" width="293" valign="top"><br />Switch between 32-bit and 64-bit factorization</td>
<td width="291" valign="top"><br />Not used (use iparm(28) to control accuracy)</td>
</tr>
<tr>
<td width="54" valign="top"><br />30</td>
<td colspan="2" width="293" valign="top"><br />Control the size of the supernodes</td>
<td width="291" valign="top"><br />Zero or negative pivots info</td>
</tr>
<tr>
<td width="54" valign="top"><br />31</td>
<td colspan="2" width="293" valign="top"><br />Partial solve for sparse right-hand side and sparse solution</td>
<td width="291" valign="top"><br />Not used</td>
</tr>
<tr>
<td width="54" valign="top"><br />32</td>
<td colspan="2" width="293" valign="top"><br />Use the multi-recursive iterative linear solver</td>
<td width="291" valign="top"><br />Not used</td>
</tr>
<tr>
<td width="54" valign="top"><br />33</td>
<td colspan="2" width="293" valign="top"><br />Determinant of a real symmetric indefinite matrix</td>
<td width="291" valign="top"><br />Not used</td>
</tr>
<tr>
<td width="54" valign="top"><br />34</td>
<td colspan="2" width="293" valign="top"><br />Identical solution independent on the number of processors</td>
<td width="291" valign="top"><br />Not used</td>
</tr>
<tr>
<td width="54" rowspan="2" valign="top"><br />35</td>
<td colspan="2" width="293" rowspan="2" valign="top"><br />Not used</td>
<td width="291" valign="top"><br />MKL 10.2.*: Not used</td>
</tr>
<tr>
<td width="291" valign="top"><br />MKL 10.3.0: C or Fortran style array indexing</td>
</tr>
<tr>
<td width="54" valign="top"><br />60</td>
<td colspan="2" width="293" valign="top"><br />Not used</td>
<td width="291" valign="top"><br />Specifies the PARDISO mode of operation: out-of-core (OOC) or in-core (InCore)</td>
</tr>
<tr>
<td width="54" valign="top"><br />61</td>
<td colspan="2" width="293" valign="top"><br />Not used</td>
<td width="291" valign="top"><br />Total peak memory at analysis and factorization phases</td>
</tr>
<tr>
<td width="54" valign="top"><br />62</td>
<td colspan="2" width="293" valign="top"><br />Not used</td>
<td width="291" valign="top"><br />Total double precision memory consumption at analysis and factorization phases</td>
</tr>
<tr>
<td width="54" valign="top"><br />63</td>
<td colspan="2" width="293" valign="top"><br />Not used</td>
<td width="291" valign="top"><br />Total double precision memory consumption at factorization and solution phases</td>
</tr>
<tr>
<td width="54"></td>
<td width="292"></td>
<td width="1"></td>
<td width="291"></td>
</tr>
</tbody>
</table>
<br /><br />
<p> </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/pardiso-api-comparison/</link>
      <pubDate>Thu, 09 Sep 2010 11:30:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/pardiso-api-comparison/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/pardiso-api-comparison/</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>
  </channel></rss>
