<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Sat, 11 Feb 2012 19:08:36 -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/compatibility/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/compatibility/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Intel® MKL GMP* functions are deprecated</title>
      <description><![CDATA[ Intel® MKL implementation of GMP* arithmetic functions will be deprecated from Intel® MKL 11.0 and will not be supported in the future versions.  It included arbitrary precision arithmetic operations on integer numbers, and the interfaces of such functions fully matched the GNU Multiple Precision* (GMP) Arithmetic Library.  ]]></description>
      <link>http://software.intel.com/en-us/articles/mkl-gmp-functions-are-deprecated/</link>
      <pubDate>Sat, 28 Jan 2012 10:30:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/mkl-gmp-functions-are-deprecated/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/mkl-gmp-functions-are-deprecated/</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Intel® MKL Reference Manual Was Removed from Product Package  </title>
      <description><![CDATA[ <a href="http://software.intel.com/en-us/articles/intel-mkl-whats-deprecated/">Intel® MKL: What's deprecated?</a><br /><br />
<p>Please be aware that in future releases (forthcoming Intel® MKL 11.0), we will modify the way we deliver the Intel® MKL Reference Manual in uncompressed help format by delivering it on the web instead of in the product package, and we will no longer deliver man pages or help content for integration with Eclipse* IDE. We are making this change in order to reduce the amount of duplicated content, decrease the size of the product package, and decrease the time it takes to install the product.</p>
<p>Note that the versions of reference manual for integration into Microsoft Visual Studio* 2008 and 2010 will continue to be delivered in the product package.  Additionally, the Intel MKL Reference manual in uncompressed help HTML format and pdf format will be made available on the <a href="http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/">Intel® MKL web page</a> for download and off-line use.<br /><br />The <a href="http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/">Intel MKL web page</a> also include other MKL documentation resources: Intel MKL Release Notes, User's Guide, LAPACK User's Guide, <a target="_blank" href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/">Intel® MKL Link Line Advisor</a>,etc.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-mkl-reference-manual-was-removed-from-product-package/</link>
      <pubDate>Thu, 26 Jan 2012 10:30:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-mkl-reference-manual-was-removed-from-product-package/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-mkl-reference-manual-was-removed-from-product-package/</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <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>Intel® MKL 11.0 will have backward incompatibility with Intel® MKL 10.2 update 3</title>
      <description><![CDATA[ <p><b><span >Deprecation note:</span></b></p>
<p><b><i><br />Who is affected: Users who use Convolution/Correlation routines from Intel® MKL</i></b></p>
<p><b><i>OS: Microsoft* Windows only</i></b></p>
<p><b><i>Intel® MKL version: Intel® MKL 11.0 (Expected date of release: Autumn 2012).</i></b></p>
<p><b><i>Problem definition: Intel® MKL 11.0 will have backward incompatibility with Intel® MKL 10.2 update 3</i></b></p>
<p><b><i>Recommended solution: Recompile your application with MKL version 10.2 update 4 or higher </i></b></p>
<p><b><i> </i></b></p>
<p>In Intel® MKL version 10.2 update 4, Convolution/correlation kernels were moved from VSL/VML core dlls to standard Intel® MKL core dll.  We kept old kernels in VSL/VML dlls for backward compatibility between Intel® MKL 10.2 update 3 and Intel® MKL 10.2.4 and higher. We are going to remove old Convolution/Correlation functions from VSL/VML dlls in Intel® MKL 11.0.  As a result you can face backward incompatibility between Intel® MKL 11.0 and Intel® MKL 10.2 update 3 but MKL 11.0 has backward compatibility with Intel® MKL 10.2.4 and higher. We recommend recompile your application with any version of Intel® MKL higher than Intel® MKL 10.2.3. You can find summary table below.<br /><br />
<table cellpadding="0" cellspacing="0" border="1">
<tbody>
<tr>
<td width="638" valign="top">
<p><b>Summary for backward compatibility of Convolution/Correlation component of Intel® MKL </b></p>
</td>
</tr>
<tr>
<td width="638" valign="top">
<p><b>Microsoft* Windows</b></p>
</td>
</tr>
<tr>
<td width="638" valign="top">
<p>Intel® MKL 10.2.4 and higher have backward compatibility with Intel® MKL 10.2.3</p>
</td>
</tr>
<tr>
<td width="638" valign="top">
<p>Intel® MKL 10.3 has backward compatibility with Intel® MKL 10.2.3</p>
</td>
</tr>
<tr>
<td width="638" valign="top">
<p>Intel® MKL 11.0 has backward compatibility with Intel® MKL 10.2.4 and higher but Intel® MKL 11.0 does not have backward compatibility with Intel® MKL 10.2.3</p>
</td>
</tr>
<tr>
<td width="638" valign="top">
<p><b>Linux</b></p>
</td>
</tr>
<tr>
<td width="638" valign="top">
<p>Intel® MKL 10.2.4 and higher have backward compatibility with Intel® MKL 10.2.3</p>
</td>
</tr>
<tr>
<td width="638" valign="top">
<p>Intel® MKL 10.3 has backward compatibility with Intel® MKL 10.2.3</p>
</td>
</tr>
<tr>
<td width="638" valign="top">
<p>Intel® MKL 11.0 has backward compatibility with Intel® MKL 10.2.3</p>
</td>
</tr>
<tr>
<td width="638" valign="top">
<p><b>Mac </b></p>
</td>
</tr>
<tr>
<td width="638" valign="top">
<p>Intel® MKL 10.2.4 and higher have backward compatibility with Intel® MKL 10.2.3</p>
</td>
</tr>
<tr>
<td width="638" valign="top">
<p>Intel® MKL 10.3 has backward compatibility with Intel® MKL 10.2.3</p>
</td>
</tr>
<tr>
<td width="638" valign="top">
<p>Intel® MKL 11.0 has backward compatibility with Intel® MKL 10.2.3</p>
</td>
</tr>
</tbody>
</table>
<br /><br />Please contact us if you have any questions/comments</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/mkl-11-backward-incompatibility-with-mkl-10_2_3/</link>
      <pubDate>Sun, 11 Sep 2011 11:30:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/mkl-11-backward-incompatibility-with-mkl-10_2_3/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/mkl-11-backward-incompatibility-with-mkl-10_2_3/</guid>
      <category>Intel® Math Kernel Library 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>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>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>
    <item>
      <title>Complex Type Convolution/Correlation are Supported</title>
      <description><![CDATA[ <strong><br />Introduction</strong><br />Linear convolution and correlation operation are widely used in single processing. Intel MKL provides a set of routines intended to perform the transformations in VSL.(Vector Statistic Library). We start to support complex type of transform since MKL 10.1. <br /><br />
<p>The names of routines have the following structure:<br />vsl[datatype]{Conv|Corr}&lt;base name&gt; for C-interface<br />The field [datatype] is optional. If present, the symbol specifies the type of the input and<br />output data and can be <br />s (for single precision real type), <br />d (for double precision real type), <br />c(for single precision complex type), or <br />z (for double precision complex type).</p>
<p>The current implementation provides:</p>
<p>· Fourier algorithms for one-dimensional single and double precision real and complex data<br />· Fourier algorithms for multi-dimensional single and double precision real and complex data<br />· Direct algorithms for one-dimensional single and double precision real and complex data<br />•  Direct algorithms for multi-dimensional single and double precision real and complex data<br /><br /><strong>Sample Code<br /></strong></p>
<p>    printf("EXAMPLE executing a convolution task\n");<br />    rank = 1;<br />    mode = VSL_CONV_MODE_DIRECT;<br />    vslcConvNewTask(&amp;task,mode,rank,&amp;xshape,&amp;yshape,&amp;zshape);<br />    status = vslcConvExec(task,x,&amp;xstride,y,&amp;ystride,z,&amp;zstride);</p>
<p><br />For simple sample c or fortran code, please see <br />${MKL Install Dir}\examples\vslc\source\vslcconvexec.c<br />${MKL Install Dir}\examples\vslf\source\vslcconvexec.f<br /><br /><strong>Compatiblity with IBM* ESSL library</strong><br />One-dimensional algorithms cover the following functions from the IBM* ESSL library:<br />SCONF, SCORF<br />SCOND, SCORD<br />SDCON, SDCOR<br />DDCON, DDCOR<br />SDDCON, SDDCOR.<br />Special wrappers are designed to simulate these ESSL functions. The wrappers are provided<br />as sample sources for FORTRAN and C. To reuse them, use the following directories:<br />${MKL install Dir}/examples/vslc/essl/vsl_wrappers<br />${MKL install Dir}/examples/vslf/essl/vsl_wrappers</p>
<p><strong>Performance issue<br /></strong>One issue is reported in MKL forum <a href="http://software.intel.com/en-us/forums/showthread.php?t=71589">Speed of vslsconv in 10.1</a>. The speed of vslsconv for 1000x1000 and 10x10 is far slower than FFT evaluated.</p>
<p>MKL really seems to have problem with choosing the optimal algorithm in this situation. It erroneously favors the overlap-add method and ends up performing a series of small 2D FFTs.</p>
<p>This issue will be fixed in one of our future releases.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/Complex_type_convolution_correlation_are_supported/</link>
      <pubDate>Sat, 06 Mar 2010 11:30:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/Complex_type_convolution_correlation_are_supported/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/Complex_type_convolution_correlation_are_supported/</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® Math Kernel Library and Intel® Integrated Performance Primitives in the Microsoft* .NET* Framework</title>
      <description><![CDATA[ <p class="Default">Intel® Performance Libraries such as Intel® MKL and Intel® IPP are unmanaged code libraries. They are written in native programming languages and compiled to machine code which can run on a target computer directly. This article is intended to educate Intel® MKL and Intel® IPP users on the basics of calling these libraries from .NET Framework languages such as C#. <br /><br /><strong>To download complete article click here -  </strong><a target="_top" href="http://software.intel.com/file/33774" title="Using Intel IPP and MKL in .Net Framework"><strong>323195-001US.pdf</strong></a></p>
<p><strong class="sectionHeadingText"><br />About the Author</strong></p>
<p><b>Naveen Gv</b> is a Technical Consulting Engineer (TCE) in the performance library team. At Intel he has specialized on Multi-core programming, Intel Performance Primitives and Intel Math Kernel Library. His professional interests are teaching Multi core Programming Methodology to software community and implementing Digital Signal Processing algorithms on x86 platform. Naveen has worked with several universities across Asia Pacific to implement Multi-Core programming in academia. His e-mail address is <a href="http://software.intel.commailto:naveen.gv@intel.com">naveen.gv at intel.com</a></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/using-intel-math-kernel-library-and-intel-integrated-performance-primitives-in-the-microsoft-net-framework/</link>
      <pubDate>Mon, 25 Jan 2010 11:30:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/using-intel-math-kernel-library-and-intel-integrated-performance-primitives-in-the-microsoft-net-framework/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/using-intel-math-kernel-library-and-intel-integrated-performance-primitives-in-the-microsoft-net-framework/</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>How to Build Intel® MKL Application in Intel Visual Fortran (MSVC*2005)</title>
      <description><![CDATA[ <p>This document describe the steps to build Intel® MKL application in Intel Visual FORTRAN Compiler, which integrated in Microsoft Visual Studio* 2005 or 2008.</p>
<p><b>Software Requirement:</b> <br />1. Intel® Visual FORTRAN Compiler Professional for Windows.  <br />The compiler was required to be installed and properly integrated to Microsoft VC 2005 or VC 2008.</p>
<p align="left">2. Intel® MKL for windows<br />You can install the Stand alone MKL separately or the integrated MKL which comes along with Intel Fortran Compiler Professional version. <br /><br />3. Microsoft* Visual Studio 2005 or 2008. (MSVC*)<br />For who'd like to build x64 bit application, please install the MSVC* package which supports X64 development. <br /><br /><b>Step1 : Which kind of application: ia32, em64t or ia64 application you need to build?</b><br />Which target machine you need your application run on? <br />ia32: 32 bit application. <br />EM64t: Intel® 64 bit application<br />IA64:  Intel® Itanium 64bit application.</p>
<p align="left">Some more information what ia32 and intel64 Intel® architecture mean,  please see <a href="http://software.intel.com/en-us/articles/ia-32-intelr-64-ia-64-architecture-mean/">this article</a>.<br /><br />When build ia32 or em64t application on Intel®  XEON machine with windows*, in MSVC* environment, please check the project configuration manager=&gt; active platform.  They should be  "ia32" or "X64" (which is corresponding to em64t). <br /><br /><b>Step 2 : Which MKL library you need link against?</b> <br /><b>2.1)</b> please check the on-line KB article <a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/" title="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/"><b>Intel® Math Kernel Library Link Line Advisor</b></a> After choose it, you can get which libraries you need to list.  <br /><br />For example, <br />"mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib" is enough for a ia32 windows application generally.<br />"mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib" is ok for a X64 windows application <br /><br /><b>Step 3: How to link MKL in your project manually?</b><b><br /></b><b>3.1)</b> Please follow the steps in <a href="http://software.intel.com/en-us/articles/integrating-a-microsoft-visual-studio-ide-project-with-intel-mkl/"><b>how to use MKL in MSVC</b></a> to add the include path, library path and mkl library as the article show. <br /><br />For example, add include path manually<br /><b></b><br /><strong><img height="461" width="753" src="http://software.intel.com/file/23743" alt="fortran_include.JPG" title="fortran_include.JPG" /></strong><br /><br />please take care of about library path,  you need enter right directory:<br />&lt;MKL install dir&gt;\ia32,  for ia32 application<br />&lt;MKL install dir&gt;\em64t, for X64 application<br />&lt;MKL install dir&gt;\ia64, for IA64 application<br />they can't be mixed. <br /><br /><br /><strong>Step 4: How to link MKL in your project automatically - One Button Support  (optional)<br /></strong>The recent MKL version have provided one "build" menu in MSVC environment. Click <strong>one button</strong>, all of environment setting and required libraries are ready in your project. <br /><strong>* This step can replace the step3 in most of cases.   <br />Or if the button is not show, please try step3, set the paths and library manually. <br /><br />4.1)</strong> See below screenshot in MSVC 2005, click the version you need<br /><img height="348" width="576" src="http://software.intel.com/file/20711" /><br />Then the required library will be added in your project automatically. <br /><img height="348" width="576" src="http://software.intel.com/file/20712" /><br /><br /><strong>4.2) In Visual Fortran compiler,</strong> it is a little different,<strong> to integrate MKL, </strong>please click the compiler option as below, change the "No" to value like /Qmkl:parallel or /Qmkl:sequential<br /><strong><img src="http://software.intel.com/file/21492" alt="OneButton_IVF.jpg" title="OneButton_IVF.jpg" /><br /></strong></p>
<p><br />Please note: some interface libraries (i.e. mkl_lapack95.lib mkl_blas95.lib fftw3xc_ms) are not MKL standard library, so the "one button" integration don't support it.  You may add them manually if you need to use them. <br /><strong><br />Step 5: About Compaq*Visual Fortran support and porting from 32bit to 64bit</strong> <strong>(Optional for who have used CVF)<br /></strong>CVF and Intel Fortran compiler use different call convention by default:<br />CVF: stdcall <br />Intel Fortran, C Compiler: cdecl (default interface of the Microsoft Visual C* application) <br /><br /><strong>5.1)</strong> MKL support both of them on ia32 platform, but if you are porting from CVF to intel Fortran, you may take care of the required library: mkl_intel_s or mkl_intel_c.lib</p>
<ul>
<li>Using the CVF compiler<br />The CVF compiler will link with mkl_intel_s[_dll].lib if routines are compiled with the default interface. However, if you compile with the option /iface=(cref,nomixed_str_len_arg), the compiler will link with mkl_intel_c[_dll].lib . </li>
<li>Using the Intel® Fortran compiler<br />The Intel Fortran compiler will link with mkl_intel_c[_dll].lib by default. But if the /Gm option is used, call mkl_intel_s  [_dll].lib (/Gm enables CVF and Powerstation calling convention compatibility, so does /iface:cvf).</li>
</ul>
<p><strong>5.2)</strong> MKL don't provide em64t and IA64 CVF interface support.  So if you are porting CVF 32bit application to X64 or IA64 platform with Intel Fortran compiler and MKL. Please note, you must to link "mkl_intel_lp64|ilp64, mkl_intel_thread, mkl_core.lib" and remove the compiler option /Gm or /iface:cvf.<br /><br />Here is a MSVC 2005 project (Intel® Fortran 11.0.0.074 IA32 application) for your reference. <a href="http://software.intel.comjavascript:void(0)" onclick="ndownload('http://software.intel.com/file/21493')"><strong>DFT_VF_sample.zip</strong></a><br /><br /><strong>Troubleshooting<br /></strong>When build the project, <br />1. <strong>fatal error LNK1104: cannot open file 'mkl_xxx.lib'<br /></strong>please make sure the library is in the library path and the path you marked in step 3 or step 4 is right<br /><br />2. <strong>"error #7002: Error opening the compiled module file.  Check INCLUDE paths. [MKL_DFTI]."<br /></strong>Please add the header file mkl_dfti.f90 in your code, for example, <br /><br />! Include to build module MKL_DFTI<br />INCLUDE 'mkl_dfti.f90'<br />before  the code line<br />USE MKL_DFTI<br /><br />Or copy the mkl_dfti.f90 file to the source directory of your project and include it in your Project.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-build-mkl-application-in-intel-visual-fotran-msvc2005/</link>
      <pubDate>Thu, 05 Nov 2009 08:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-build-mkl-application-in-intel-visual-fotran-msvc2005/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-build-mkl-application-in-intel-visual-fotran-msvc2005/</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
  </channel></rss>
