<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Sun, 12 Feb 2012 04:11:57 -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/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-mkl-kb/type/technical-notes/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>System requirements change in Intel MKL</title>
      <description><![CDATA[ <p>In the future release of Intel® MKL, following Operating Systems and Compiler support will be dropped in Intel® MKL 11.0</p>
<p>• Red Hat* Enterprise Linux* 4</p>
<p>• Ubuntu* 9 (for Intel MKL 10.3 - Intel MKL 10.3 update 3), 10.04, 11.04</p>
<p>• Debian* GNU/Linux 4&amp;5, 6, Asianux* Server 3 and Turbolinux* 11)</p>
<p>• Red Hat Fedora* core 12, 13, 15</p>
<p>• Mac OS* X 10.5 (Leopard)</p>
<p>• Intel® C++ and Fortran Compiler 11.0 for Windows/Linux</p>
<p>• PGI* Workstation Complete version 10.8</p>
<p>• Intel MPI 3.0 and 3.1</p>
<p><br />Note: <b>Ubuntu* 12.04</b><b>, </b><b>Red Hat Fedora* core </b><b>17</b><b> and </b><b>PGI* Workstation Complete version 11.6</b> will be supported in Intel® MKL 11.0</p>
<p><br />To get more information on Intel MKL 10.3 system requirements refer <a href="http://software.intel.com/en-us/articles/intel-mkl-103-system-requirements/">to Intel® MKL 10.3 System Requirements Knowledge Base article</a>.</p>
<p><br />If you have any concerns then please leave your comments at the end of this article, or <a href="http://software.intel.com/en-us/forums/showthread.php?t=101353&amp;o=a&amp;s=lr">discuss this on the Intel® MKL Forum</a>.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/system-requirements-change-in-intel-mkl/</link>
      <pubDate>Thu, 02 Feb 2012 10:30:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/system-requirements-change-in-intel-mkl/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/system-requirements-change-in-intel-mkl/</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Quick Link Intel® MKL In Xcode* IDE: A Fortran Sample</title>
      <description><![CDATA[ Since version 10.x, Intel® Math Kernel Library for Mac OS* comes bundled with Intel® Fortan or C/C++ Compiler for Mac OS*, which was integrated into Xcode Integrated Development Enviornments after default installation. This provided us a quick link way to access MKL in Xcode IDE. <br /><br />This tutorial is intended to show the quick way using XCode 4.0 and Intel® Fortran Compiler XE 12.1, but we hope that it will be helpful for users of the other versions. Here is the<a href="http://software.intel.com/file/41405" title="MKL_dgemm_f"> fortran sample<br /><br /></a>For gernal link way, please refer to  <br /><a nodeindex="1" sizcache="0" data-wap="{&quot;linktype&quot;:&quot;result&quot;}" href="http://software.intel.com/en-us/articles/intel-math-kernel-library-for-mac-os-compiling-and-linking-with-xcode?wapkw=Xcode">Compiling and linking MKL with <b nodeindex="1">Xcode</b>*</a>  <br /><a nodeindex="1" sizcache="0" data-wap="{&quot;linktype&quot;:&quot;result&quot;}" href="http://software.intel.com/en-us/articles/how-to-link-application-against-intel-mkl-using-xcode-ide?wapkw=xcode">How to link application against Intel MKL using <b nodeindex="1">XCode</b> IDE </a><br /> <br />1.<b>    </b><b>Create a new Xcode* project<br /><br /></b>
<p align="left" >a)   Copy sample source code: dgemmx.f and common_func.f from &lt;mkl install directory /examples/blas/source&gt; to your work directory, for example, /Users/yhu5/blas.<br />b)   Launch the Xcode application, typically found in the <b>Developer &gt; Applications</b> folder.<br />c)<strong>   </strong>In Xcode Menu, select <b>File</b> &gt; <b>New</b> &gt; <b>New Project...</b>. , The <b>New Project Assistant</b> window opens. Select <b>Application</b> in the left pane. Select a template, for example, <b>Command Line Tool</b>, and click <b>Next</b>. Name your project, for example, <b>MKL_dgemm_f</b>, and select a type C. Click <b>Next</b>. Specify a directory for your project<b> ,</b> For example, /Users/yhu5/blas. Click <b>Create.<br /> <img src="http://software.intel.com/file/41379" alt="mkl1.png" title="mkl1.png" /></b></p>
<p align="left" >d)     Xcode creates the named project directory, with an .xcodeproj extension and several new source files like main.c etc.  Remove main.c, etc. file  and add dgemmx.f and common_func.f into ‘Source' project folder.</p>
<p align="left" > <img src="http://software.intel.com/file/41380" alt="mkl2.png" title="mkl2.png" /></p>
<p align="left">Each Xcode project has its own Project Editor window that displays project source files, targets, and executables.</p>
<p align="left"><strong>2. Setting MKL Options in Xcode IDE</strong></p>
<p align="left">In the Xcode project, select the target and click <b>Build Setting</b>. Under the <strong>Build Settings</strong> tab, click <strong>All. </strong>Scroll down until you see IFORT_MKL, Select "Use threaded Intel® Math Kernel Library (or "Use non-thread Intel @ Math Kernal Library.)</p>
<p align="left" > <img src="http://software.intel.com/file/41381" alt="mkl3.png" title="mkl3.png" /></p>
<p align="left"><strong>3. Build and Run the Project</strong></p>
<p align="left" >Select <b>Product</b> &gt; <b>Build</b>. Or Click the  ‘Run' button on project tools bar, the project will build successfully. <br />But may run with error message dyld: Library not loaded: libmkl_intel_lp64.dylib<img src="http://software.intel.com/file/41404" alt="mkl7.png" title="mkl7.png" /></p>
<p align="left">(other compiler errors, like files is not found or Open file failed, please change the path of the files and the code in dgemmx.f, line 49, OPEN(UNIT=1, FILE='/Users/xx/xx/dgemmx.d',STATUS='OLD' so Xcode can find them.)<br /><br /><strong>4) Set Run Environment</strong></p>
<p align="left">Open the Scheme Editor, click the <b>Scheme</b> button in the Project Editor Toolbar and select <b>Edit Scheme, </b>Under the <b>Arguments</b> tab, add DYLD_LIBRARY_PATH as an environment variable. <br />Set the Value as the full path to the Intel compiler's /lib directory and MKL directory<br />DYLD_LIBRARY_PATH=/opt/intel/composer_xe_2011_sp1.8.269/compiler/lib:</p>
<p align="left"> /opt/intel/composer_xe_2011_sp1.8.269/mkl/lib</p>
<p align="left" ><img src="http://software.intel.com/file/41382" alt="mkl4.png" title="mkl4.png" /><br /><br />Click <strong>Run</strong> button again, you will get the result in Output box.</p>
<p ><img src="http://software.intel.com/file/41383" alt="mkl5.png" title="mkl5.png" /></p>
<p>Please refer to Intel Compiler User and Reference Guide =&gt;Building Applications with Xcode* IDE"<br />or "Configuring the Apple Xcode* Developer Software to Link with Intel MKL" section in MKL user guide for more details. <br />And refer to "Linking Your Application with Intel® MKL" section in the <a target="_blank" href="http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/">Getting Started</a> document to understand which libraries required by your code.<br /><br /><strong>Operating System:</strong></p>
<p>
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td class="xs">Mac OS*</td>
</tr>
</tbody>
</table>
</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/quick-link-intel-mkl-in-xcode-ide-a-fortran-sample/</link>
      <pubDate>Sat, 28 Jan 2012 08:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/quick-link-intel-mkl-in-xcode-ide-a-fortran-sample/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/quick-link-intel-mkl-in-xcode-ide-a-fortran-sample/</guid>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>The default optimized code at IA-32 will be removed in the Intel® MKL 11.0</title>
      <description><![CDATA[ <p>Intel MKL 10.3 default optimized code at IA-32 runs on the processors that do not support Intel® SSE2 instructions(Intel® Pentium® Ⅲ processors, or Intel compatible processors without SSE2 instructions, etc.).<br /><br />In the forthcoming Intel MKL 11.0, the default optimized code for IA-32 will be removed. The minimum processor requirement will be the processors supporting Intel SSE2 instructions, and Intel MKL functions will return an error on the processors without Intel SSE2 support.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/the-default-optimized-code-at-ia-32-will-be-removed-in-the-intel-mkl-110/</link>
      <pubDate>Fri, 27 Jan 2012 08:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/the-default-optimized-code-at-ia-32-will-be-removed-in-the-intel-mkl-110/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/the-default-optimized-code-at-ia-32-will-be-removed-in-the-intel-mkl-110/</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Use Intel® MKL from Microsoft* office Excel</title>
      <description><![CDATA[ <p><b>O</b><b>verview</b></p>
<p>Intel® Math Kernel Library (Intel® MKL) is a highly optimized, extensively threaded and thread-safe library of mathematical functions for engineering, scientific, and financial applications. Microsoft Office Excel* helps developers make more informed decisions, by using spreadsheets to analyze and share data. This article will show: how to create a Dynamic Link Library (DLL) from Intel MKL, call Intel MKL functions using a Microsoft Visual Basic for Applications (VBA), and interface with the DLL.</p>
<p><b>Building the Examples:   <a href="http://software.intel.com/file/40479">mklinExcel.zip</a></b></p>
<p>There are some ways of interfacing with third party software libraries from Excel which are well documented in Excel online help, like</p>
<p><a href="http://www.exceldigest.com/myblog/2011/04/23/how-to-create-a-user-defined-function-in-excel-2007-or-excel-2010/">How to create a <b>user-defined</b> function in <b>Excel</b> <b>2007</b> or <b>Excel</b> 2010 </a></p>
<p><a href="http://msdn.microsoft.com/en-us/library/bb226683.aspx">Developing <b>User-Defined</b> Functions for <b>Excel</b> <b>2007</b> and <b>Excel</b> 2010...</a></p>
<p><a href="http://office.microsoft.com/client/helppreview.aspx?AssetId=HA102189969990&amp;lcid=1033&amp;NS=EXCEL&amp;Version=12&amp;pid=CH010064502&amp;CTT=4">Create Custom Functions in Excel 2007</a></p>
<p><a href="http://msdn.microsoft.com/en-us/library/bb687915(v=office.12).aspx">How to: Access <b>DLLs</b> in <b>Excel</b> - MSDN - Explore Desktop, Web ...</a>.</p>
<p>Calling from EXCEL through VBA do require that the called routine support STDCALL calling convention. Intel® MKL, which contains over hundreds math functions, support both CDECL and STDCALL interfaces (see, for example, <a href="http://msdn.microsoft.com/en-us/library/aa248354(v=VS.60).aspx">MSDN</a>, for description of calling conventions). Thus, the best way to call Intel® MKL functions from Excel to build a custom DLL based on Intel® MKL library which support STDCALL interface.</p>
<p>In this article we will use Microsoft Office Excel 2007 and Microsoft Visual Studio 2005 as example.</p>
<p align="left"><b>Prerequisites: </b><br />Install Intel MKL :  <a href="http://www.intel.com/cd/software/products/asmo-na/eng/307757.htm">Intel Math Kernel Library product web page</a>.<br />Install Microsoft office Excel 2007 and Microsoft Visual studio 2005<b></b></p>
<p><b>Step1: Build custom DLL by builder tools provided by Intel MKL </b></p>
<p>a.       Unzip the contents of the attached zip file to your work directory, for example C:\temp\mklinExcel\builder</p>
<p> Enter the directory and edit the user_example_list text file with the functions you hope to use.</p>
<p>For example:</p>
<p>VDSQR </p>
<p>The function performs element by element squaring of the vector. For example, calculate the square of one vector a= (a1, a2, ...) and vdsqr(a)=( a1^2,a2^2,...).</p>
<p>Search more functions in <a href="http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/index.htm">Intel® MKL Reference Manual </a> </p>
<p>b.       Run the build script (makefile) using nmake</p>
<p>Open a Microsoft Visual Studio command prompt or add the Microsoft.NET Framework to the PATH environment variable in the command prompt</p>
<p>And enter the directory and type the command</p>
<p>&gt;<a name="OLE_LINK8"></a><a name="OLE_LINK7">nmake libia32 threading=sequential interface=stdcall export=user_example_list name=mkl_custom MKLROOT="C:\Program Files (x86)\Intel\composer XE 2011 SP1\mkl"</a></p>
<p>This will create a dll named <b>mkl_custom.dll</b> if success to build as below<img src="http://software.intel.com/file/40475" alt="image001.png" title="image001.png" /></p>
<p><strong>Notes:</strong></p>
<p>The makefile provides further explanation of the parameters in comments.</p>
<p>The builder tool is actually available in MKL install directory.   C:\Program Files (x86)\Intel\Composer XE 2011 SP1\mkl\tools\builder</p>
<p>Copy the builder directory (including all files) to your work directory, for example, C:\temp\builder\ and edit the makefile.</p>
<blockquote>
<p>Change:</p>
<p>!if "$(interface)"=="std" || "$(interface)"=="stdcall" || "$(interface)"=="STD" || "$(interface)"=="STDCALL"</p>
<p>IFACE_LIB_32=mkl_intel_s.lib</p>
<p>IFACE_LIB_32_DLL=mkl_intel_s_dll.lib</p>
<p>!endif</p>
</blockquote>
<p> </p>
<p align="left"><b>Step 2. Build an example in Excel which call VDSQR() function</b></p>
<p>a.     Please open the mklDllTest.xls (in C:\temp\mklinExcel) in Excel 2007. </p>
<p>Or you can create your own workshop in Excel and add command button as <a name="{&quot;ai&quot;:&quot;HP010236676&quot;,&quot;bb&quot;:false,&quot;dl&quot;:1,&quot;l">the steps. </a><a href="http://office.microsoft.com/client/helppreview.aspx?AssetId=HP102366769990&amp;lcid=1033&amp;NS=EXCEL&amp;Version=12&amp;respos=0&amp;CTT=1&amp;queryid=7bf32cbc%2Dafbd%2D487c%2Da372%2D01e8f297b6ea">Add a <b>button</b> and assign a macro to it in a worksheet</a>.</p>
<p>b.       Click Alt+F11 start Visual Basic Editor and edit Module1 to correct path of the custom DLL</p>
<blockquote>
<p>'in this example, it is<br />Declare Sub VDSQR Lib "<i>C:\temp\mklinExcel\builder\mkl_custom.dll</i>" _</p>
<p>(ByRef n As Integer, ByRef a As Double, ByRef r As Double)</p>
</blockquote>
<p> <b><img height="486" width="669" src="http://software.intel.com/file/40476" alt="image003.png" title="image003.png" /></b></p>
<p> </p>
<p>c.       Type your own VBA code in the sub procedure called CommandButton1_Click, as shown in the following code:</p>
<blockquote>
<p>Private Sub CommandButton1_Click()</p>
<p>Dim n As Integer</p>
<p>Dim a() As Double</p>
<p>Dim b() As Double</p>
<p>Dim I As Integer</p>
<p>Dim Sum As Double</p>
<p> </p>
<p>n = 3</p>
<p>ReDim a(n)</p>
<p>ReDim b(n)</p>
<p> </p>
<p>For I = 0 To n</p>
<p>a(I) = I</p>
<p>Next I</p>
<p> </p>
<p>Call VDSQR(n + 1, a(0), b(0))</p>
<p> </p>
<p>Sum = 0</p>
<p>For I = 0 To n</p>
<p>Sum = Sum + b(I)</p>
<p>Next I</p>
<p> </p>
<p>TextBox1.Text = "Answer 0^2+ 1^2 + 2^2 + 3^2 is " &amp; Str(Sum)</p>
<p> </p>
<p>End Sub</p>
</blockquote>
<p>This will create a VBA to call mkl VDSQR function from Excel 2007. Please refer the below screenshots for more details<a name="_GoBack"></a></p>
<p> <b><img height="484" width="684" src="http://software.intel.com/file/40477" alt="image005.png" title="image005.png" /><br /></b><br />d. Click Alt+F11 back to Excel sheet. Click the "Call mklDLL vdSqr(n,a,r)" button, you will see the run result. 0^2+1^2 + 2^2 + 3^2 = 14.</p>
<p> <b><img height="471" width="692" src="http://software.intel.com/file/40478" alt="image007.png" title="image007.png" /></b></p>
<p>  </p>
<p><b>Trouble shooting</b></p>
<p>•1.       Bad DLL calling convention (Error 49), please refer to the Excel on line help</p>
<p>The problem mainly is that your program is calling a routine in a DLL, but isn't using the StdCall calling convention.</p>
<p align="left"><b>Appendix C - References</b></p>
<ul type="disc">
<li><a href="http://software.intel.com/en-us/articles/intel-mkl/">Intel® Math Kernel Library website</a></li>
<li><a href="http://software.intel.com/en-us/forums/intel-math-kernel-library">Intel® Math Kernel Library User Forum</a><a target="_blank" href="http://software.intel.com/en-us/articles/intel-composer-xe/"><br /></a></li>
</ul> ]]></description>
      <link>http://software.intel.com/en-us/articles/use-intel-mkl-from-microsoft-office-excel/</link>
      <pubDate>Fri, 09 Dec 2011 08:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/use-intel-mkl-from-microsoft-office-excel/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/use-intel-mkl-from-microsoft-office-excel/</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Intel® MKL Data Fitting component: Overview</title>
      <description><![CDATA[ <br />Intel® MKL 10.3 update 8 introduces Data Fitting Component. Data Fitting functions in Intel® MKL provide spline-based interpolation capabilities that can be used for spline construction (Linear, Cubic Quadratic etc.), to approximate functions, function derivatives or integrals, and perform cell search operations.<br /><br />Please find additional details in the overview training material: <a href="http://software.intel.comjavascript:void(0)" onclick="ndownload('http://software.intel.com/file/41051')"><b>Intel MKL Data Fitting Library Overview.pdf</b></a> <br /><br /><br />Note: <br />1. Intel® MKL 10.3 update 8 supports 1-D data fitting components.<br />2. Data Fitting component of Intel® MKL 10.3 update 8 does not support PGI* Fortran Compiler.<br /><br />
<p ><br /><img height="482" width="615" src="http://software.intel.com/file/40438" /></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/mkl-data-fitting-component-overview/</link>
      <pubDate>Sun, 04 Dec 2011 10:30:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/mkl-data-fitting-component-overview/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/mkl-data-fitting-component-overview/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* 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>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>Which Intel® Math Kernel Library (Intel® MKL) libraries are &amp;#34;Redistributables&amp;#34;?</title>
      <description><![CDATA[ When you consider distributing Intel® MKL libraries through your products, you may choose the following options:<br /><br />1. Copy Intel MKL dlls (for Widnows*) from directory redist\(ia32\intel64)  to your destination application folder. For Linux and Mac OS* shared objects, .so files are located in redist\(ia32/intel64) directory.<br /><br />2. Create your own dll for your redistributions by using Intel MKL customdll linkage. <br /><br />3. Use Intel MKL static libraries from \lib directory.<br /><br />If you are using Intel MKL stand-alone product:<br /><br />Check the redist.txt file located in &lt;Intel MKL install directory&gt; \Documentation\en_US\mkl for more details <br /><br /><br />If you are using Intel MKL from previous Intel® Compiler Professional Edition version:<br /><br />Check the redist.txt file located in Intel MKL directory &lt;Intel MKL install directory&gt; \Documentation\en_US\mkl for more details.<br /><br /><br /><br /> ]]></description>
      <link>http://software.intel.com/en-us/articles/which-mkl-libraries-are-redistributables/</link>
      <pubDate>Wed, 25 May 2011 08:30:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/which-mkl-libraries-are-redistributables/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/which-mkl-libraries-are-redistributables/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Creating, Configuring, and Running Intel® Visual FORTRAN projects in Microsoft* Visual Studio* to build Intel® MKL application</title>
      <description><![CDATA[ <p >You can use Intel® Visual Fortran composer XE 2011 within Microsoft* Visual Studio Integrated Development Environment (IDE). This article provides the information for linking your application with Intel MKL form Microsoft* Visual Studio* 2005/2008/2010 and Intel Visual Fortran composer XE 2011.<br />Make sure that Intel Visual Fortran composer XE 2011 is integrated within Microsoft* Visual Studio* correctly.<br /><b>       1.     </b><b>Create a Visual Fortran Project:</b></p>
<p >a. Open Visual Studio 2005/2008/2010.</p>
<p >b. On the main menu, select <b>File </b>&gt; <b>New </b>&gt; <b>Project </b>to open the <b>New Project </b>window.</p>
<p >c.  Select <b>Project Types </b>&gt; <b>Intel(R) Fortran </b>&gt; <b>Console Application</b>, then select <b>Templates </b>&gt; <b>Empty Project</b>. When done, in the <b>Name </b>field, type <i>&lt;project name&gt; </i>for example, <b>trig_mkl</b>, and click <b>OK</b>. The <b>New Project </b>window closes.</p>
<p ><img height="438" width="516" src="http://software.intel.com/file/34929" alt="new+project.jpg" title="new+project.jpg" /><br />The next steps are performed inside the Solution Explorer window. To open it, select <b>View </b>&gt; <b>Solution Explorer </b>from the main menu.<br /><strong><br />2. Add sources of Intel MKL example to the project :<br /><br /></strong>a. Right-click the <b>Source Files </b>folder under <b>&lt;project name&gt; </b>and select <b>Add </b>&gt; <b>Existing Item... </b>from the drop-down menu. The <b>Add Existing Item - &lt;project name&gt; </b>window opens.</p>
<p >b. Browse to the Intel MKL example directory, for example, <i>&lt;mkl directory&gt;</i>\examples\pdettf\source. Select the   example file and supporting files with extension ".f" or ".f90" (Fortran sources). For example, select the d_trig_tforms_bvp.f90 file. For the list of supporting files in each example directory, click <b>Add</b>.The <b>Add Existing Item - &lt;project name&gt; </b>window closes, and the selected files appear in the <b>Source Files </b>folder in Solution Explorer.<img height="278" width="563" src="http://software.intel.com/file/34930" alt="add+source+file.jpg" title="add+source+file.jpg" /></p>
<p >c. Right-click the <b>Header Files </b>folder under <b>&lt;project name&gt; </b>and select <b>Add </b>&gt; <b>Existing Item... </b>from the drop-down menu. The <b>Add Existing Item - &lt;project name&gt; </b>window opens.<br /><br />d. Browse to the <i>&lt;mkl directory&gt;</i>\include directory. Select the header files, For example, select the mkl_dfti.f90 and mkl_trig_transforms.f90 files. Click <b>Add</b>. The <b>Add Existing Item - &lt;project name&gt; </b>window closes, and the selected files to appear in the <b>Header Files </b>folder in Solution Explorer.<br /><img height="291" width="635" src="http://software.intel.com/file/34931" alt="add+header.jpg" title="add+header.jpg" /></p>
<p >The next step is to configuring properties of the project:</p>
<p ><strong>3.</strong>  Select the <b>&lt;project name&gt;</b>.</p>
<p ><strong>4.</strong>  On the main menu, select <b>Project </b>&gt; <b>Properties </b>to open the <b>&lt;project name&gt; Property Pages </b>window.</p>
<p ><strong>5.</strong>  Set the Intel MKL include dependencies:</p>
<p >a.  Select <b>Configuration Properties </b>&gt; <b>Fortran </b>&gt; <b>General</b>. In the right-hand part of the window, select <b>Additional Include Directories </b>&gt; &gt; <b>&lt;Edit...&gt;</b>. The <b>Additional Include Directories </b>window opens.</p>
<p ><img height="351" width="517" src="http://software.intel.com/file/34932" alt="include+setting.jpg" title="include+setting.jpg" /><br />b.  Type the Intel MKL include directory in quotes: "<i>&lt;mkl directory&gt;</i>\include". Click <b>OK </b>to close the window.<br /><strong><br />6.</strong> Select <b>Configuration Properties </b>&gt; <b>Fortran </b>&gt; <b>Preprocessor</b>. In the right-hand part of the window, select <b>Preprocess Source File </b>&gt; <b>Yes </b>(default is <b>No</b>). This step is recommended because some examples require preprocessing.<br /><img height="270" width="504" src="http://software.intel.com/file/34933" alt="preprocessor.jpg" title="preprocessor.jpg" /></p>
<p ><strong>7.</strong>   Set library dependencies: </p>
<p >a.  Select <b>Configuration Properties </b>&gt; <b>Linker </b>&gt; <b>General</b>. In the right-hand part of the window, select <b>Additional Library Directories </b>&gt; &gt; <b>&lt;Edit...&gt;</b>. The <b>Additional Library Directories </b>window opens.<img height="350" width="501" src="http://software.intel.com/file/34934" alt="linker_general.jpg" title="linker_general.jpg" /></p>
<p >b.  Type the directory with the Intel MKL libraries in quotes, that is, "<i>&lt;mkl directory&gt;</i>\lib\<i>&lt;architecture&gt;</i>", where <i>&lt;architecture&gt; </i>is one of { ia32, intel64 }, for example: "<i>&lt;mkl directory&gt;</i>\lib\Intel64". Click <b>OK </b>to close the window.</p>
<p >c.  Select <b>Configuration Properties </b>&gt; <b>Linker </b>&gt; <b>Input</b>. In the right-hand part of the window, select <b>Additional Dependencies </b>and type the libraries required, for example, if <i>&lt;architecture&gt; </i>=intel64, type mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib.<br /><img height="316" width="512" src="http://software.intel.com/file/34935" alt="linker_input.jpg" title="linker_input.jpg" /></p>
<p ><strong>8.</strong>  In the <b>&lt;project name&gt; Property Pages </b>window, click <b>OK </b>to close the window.</p>
<p ><strong>9.</strong>  Some examples do not pause before the end of execution. To see the results printed in the Console window, set a breakpoint at the very end of the program or add the 'pause' statement before the last 'end' statement.</p>
<p ><strong>10.</strong> To build the solution, select <b>Build </b>&gt; <b>Build Solution</b>.</p>
<p ><strong>11.</strong> To run the example, select <b>Debug </b>&gt; <b>Start Debugging</b>. The Console window opens.</p>
<p ><strong>12.</strong>  You can see the results of the example in the Console window. If you used 'pause' statement to pause execution of the program, press <b>Enter </b>to complete the run. If you used a breakpoint to pause execution of the program, select <b>Debug </b>&gt; <b>Continue</b>. The Console window closes.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/creating-configuring-and-running-intel-visual-fortran-projects-in-microsoft-visual-studio-to-build-intel-mkl-application/</link>
      <pubDate>Tue, 08 Mar 2011 08:30:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/creating-configuring-and-running-intel-visual-fortran-projects-in-microsoft-visual-studio-to-build-intel-mkl-application/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/creating-configuring-and-running-intel-visual-fortran-projects-in-microsoft-visual-studio-to-build-intel-mkl-application/</guid>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Windows* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Description of PARDISO errors and messages</title>
      <description><![CDATA[ <p class="MsoNormal"><span lang="EN-US" >See the table below for the description of the error indicator.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<table cellpadding="0" cellspacing="0" border="1" class="MsoTableGrid" >
<tbody>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><b><i><span lang="EN-US" >Error </span></i></b><i><span lang="EN-US" >( Integer)</span></i><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><b><span lang="EN-US" >Information</span></b><span lang="EN-US" ><o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >0</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >no error</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-1</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >input inconsistency<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-2</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >not enough memory<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-3</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >reordering problem<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-4<o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >zero pivot, numerical factorization or<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >iterative refinement problem</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-5</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >unclassified (internal) error<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-6</span><span lang="EN-US" ><o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >preordering failed (matrix types 11, 13 only)<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-7<o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >diagonal matrix is singular<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-8<o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >32-bit integer overflow problem<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-9<o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >not enough memory for OOC<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-10<o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >problems with opening OOC temporary files<o:p></o:p></span></p>
</td>
</tr>
<tr >
<td width="111" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >-11<o:p></o:p></span></p>
</td>
<td width="527" valign="top" >
<p class="MsoNormal"><span lang="EN-US" >read/write problems with the OOC data file<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >Below each error is described in details:<o:p></o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US" ><o:p></o:p></span></b></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span>0: <span ></span></span></i></b><b ><i ><span lang="EN-US" >no error</span></i></b><b ><i ><span lang="EN-US" ><o:p></o:p></span></i></b></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><o:p></o:p></span></i></b></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span>-1: <span ></span></span></i></b><b ><i ><span lang="EN-US" >Input inconsistency</span></i></b></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<span >This error can appear in the following situations:</span><br />
<ul>
</ul>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<ul>
<li>
<div class="MsoListParagraphCxSpFirst"><span lang="EN-US" >Incorrect stage number for PARDISO was called.<o:p></o:p></span></div>
</li>
<li>
<div class="MsoListParagraphCxSpMiddle"><span lang="EN-US" >Incorrect PARDISO calling sequence, e.g. run stage &gt; 1 without initialization results in error reporting.<o:p></o:p></span></div>
</li>
<li><span lang="EN-US" >Incorrect number of matrices to be solved was set (PARDISO can be used for solving several matrices with the same sparsity structure at once, taking into account that their maximum number was defined previously. Setting the number of matrices to be solved outside the range of <b>1</b></span><b><samp><span lang="EN-US">≤</span></samp><span lang="EN-US" > … </span><samp><span lang="EN-US">≤</span></samp></b><span lang="EN-US" ><b>maxfct</b> results in error).</span></li>
<li>
<div class="MsoListParagraphCxSpLast"><span lang="EN-US" >PARDISO checks the parameters at each stage for consistency with the parameters at the previous stages. Every disagreement results in error reporting.<o:p></o:p></span></div>
</li>
</ul>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >-2: <span ></span></span></i></b><b ><i ><span lang="EN-US" >not enough memory</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is returned in the case of any problem with memory allocation inside PARDISO.<o:p></o:p></span></p>
<p class="MsoNormal"><i ><span ><span lang="EN-US" >PARDISO messages:<o:p></o:p></span></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><span ></span><i >"*** Error in PARDISO memory allocation: [STRUCTURE NAME], size to allocate: %d bytes"<o:p></o:p></i></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"total memory wanted here: %d kbyte"<o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"symbolic (max): %d symbolic (permanent): %d"<o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"real(including 1 factor): %d"<o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><span >It describes the issue that arises on allocation of STRUCTURE_NAME inside PARDISO. A additional information about current memory usages is also printed.</span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >-3</span></i></b><b ><i ><span lang="EN-US" >: </span></i></b><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >reordering problem</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >Returned for any problem on a reordering stage (phase 11)<o:p></o:p></span></p>
<p class="MsoNormal"><i ><span ><span lang="EN-US" >PARDISO messages:<o:p></o:p></span></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><span ></span><i >"*** error PARDISO: reordering, symbolic factorization"<o:p></o:p></i></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >-4: <span ></span></span></i></b><b ><i ><span lang="EN-US" >zero pivot, numerical factorization or iterative refinement problem</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >Let us start with a citation of the Intel MKL manual:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" >Using </span></i><i><span lang="EN-US" >phase </span></i><i ><span lang="EN-US" >=33 </span></i><i ><span lang="EN-US" >results in an error message (</span></i><b ><i><span lang="EN-US" >error </span></i></b><b ><i ><span lang="EN-US" >=4, should be -4 *</span></i></b><b ><i ><span lang="EN-US" > </span></i></b><i ><span lang="EN-US" >) <span ></span>if the stopping criteria for the Krylow-Subspace iteration cannot be reached. <o:p></o:p></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" >If </span></i><i><span lang="EN-US" >phase</span></i><i ><span lang="EN-US" >= 23</span></i><i ><span lang="EN-US" >, then the factors </span></i><i><span lang="EN-US" >L</span></i><i ><span lang="EN-US" >, </span></i><i><span lang="EN-US" >U </span></i><i ><span lang="EN-US" >are recomputed for the matrix </span></i><i><span lang="EN-US" >A </span></i><i ><span lang="EN-US" >and the error flag </span></i><b ><i><span lang="EN-US" >error</span></i></b><b ><i ><span lang="EN-US" >=0 </span></i></b><i ><span lang="EN-US" >in case of a successful factorization. If </span></i><i><span lang="EN-US" >phase </span></i><i ><span lang="EN-US" >=33</span></i><i ><span lang="EN-US" >, then </span></i><b ><i><span lang="EN-US" >error </span></i></b><b ><i ><span lang="EN-US" >= -4</span></i></b><i ><span lang="EN-US" > </span></i><i ><span lang="EN-US" >signals the failure<o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >If the solver detects a zero or negative pivot for these matrix types, the factorization is stopped, PARDISO returns immediately with an error (</span></i><b ><i><span lang="EN-US" >error </span></i></b><b ><i ><span lang="EN-US" >= -4</span></i></b><i ><span lang="EN-US" >) and </span></i><i><span lang="EN-US" >iparm</span></i><i ><span lang="EN-US" >(30) </span></i><i ><span lang="EN-US" >contains the number of the equation where the first zero or negative pivot is detected.</span></i><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >The error returned in the case of any problem at the factorization stage (phase 22) or at the iterative refinement stage of solution. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i ><span ><span lang="EN-US" >PARDISO messages:<o:p></o:p></span></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"*** Error in PARDISO: cgs error iparam(20) %d"</span></i><span lang="EN-US" > – prints iparm(20) – see CG / CGS diagnostics in the Intel MKL manual<o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"*** error PARDISO: iterative refinement"<o:p></o:p></span></i></p>
<p class="MsoNormal"><span ><span lang="EN-US" ><i>" contraction rate is greater than 0.9, interrupt" – </i>rate of contraction is too small <i><o:p></o:p></i></span></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"*** error PARDISO: iterative refinement"<o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >" exceeds max. iteration number %d"<span > </span></span></i><span lang="EN-US" >- prints abs(iparm(8))<o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"*** Error in PARDISO: internal error, insufficient memory factorization" – </span></i><span lang="EN-US" >looks like a problem at the factorization stage except for pivoting issues (see errors below)<o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"*** Error in PARDISO: zero or negative pivot, A is not SPD-matrix" – </span></i><span lang="EN-US" >original matrix (almost) not SPD one (probably due to computer arithmetic inaccuracies)<o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"*** Error in PARDISO: zero pivot" – </span></i><span lang="EN-US" >the same as above but for other matrix types<i ><o:p></o:p></i></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span>-5</span></i></b><b ><i ><span lang="EN-US" >: </span></i></b><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >unclassified (internal) error</span></i></b><b ><i ><span lang="EN-US" ><o:p></o:p></span></i></b></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is not used currently and is reserved for the future use.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >-6: <span ></span></span></i></b><b ><i ><span lang="EN-US" >preordering failed (matrix types 11, 13 only)</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is returned in the case of any problem at the stage of preparation for reordering (in matching algorithm).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i ><span ><span lang="EN-US" >PARDISO messages:<o:p></o:p></span></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><span ></span><i >"*** Error in PARDISO: preordering failed after %d neqns out of %d"<o:p></o:p></i></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" >"structure singular or input/parameter problem (matrix type 11,13)"<o:p></o:p></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >Looks like the message provides no meaningful information.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span>-7: <span ></span></span></i></b><b ><i ><span lang="EN-US" >diagonal matrix problem</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >PARDISO prints no messages. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" ><span ></span></span></i></b><b ><i ><span lang="EN-US" >-8: <span ></span></span></i></b><b ><i ><span lang="EN-US" >32-bit integer overflow problem</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is returned on 32-bit architecture for big matrices when indices become greater than the maximal integer value on this platform. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i ><span ><span lang="EN-US" >PARDISO messages:<o:p></o:p></span></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><span ></span><i >"*** error PARDISO: reordering, symbolic factorization"</i><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" >-9: </span></i></b><b ><i ><span lang="EN-US" >not enough memory for OOC</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >Let us start with a citation of the Intel MKL manual:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i ><span lang="EN-US" >Note that if </span></i><i><span lang="EN-US" >iparm</span></i><i ><span lang="EN-US" >(60) </span></i><i ><span lang="EN-US" >is equal to 1 or 2, and the total peak memory needed for strong local arrays is more than </span></i><i ><span lang="EN-US" >MKL_PARDISO_OOC_MAX_CORE_SIZE</span></i><i ><span lang="EN-US" >, the program stops with <b >error -9</b>. In this case, increase of </span></i><i ><span lang="EN-US" >MKL_PARDISO_OOC_MAX_CORE_SIZE </span></i><i ><span lang="EN-US" >is recommended.</span></i><i ><span lang="EN-US" ><o:p></o:p></span></i></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is returned when amount of memory available for PARDISO (defined by MKL_PARDISO_OOC_MAX_CORE_SIZE, by default 2000 Mb) is not enough to solve the current matrix. The issue can be resolved by increasing the value for available memory.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" >-10: </span></i></b><b ><i ><span lang="EN-US" >problems with opening OOC temporary files</span></i></b><span lang="EN-US" > <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is returned when PARDISO can’t create / open temporary files for storing OOC arrays, e.g. in the case of wrong permissions or when files were removed or blocked or not released after the previous steps.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><b ><i ><span lang="EN-US" >-11: </span></i></b><b ><i ><span lang="EN-US" >read/write problems with the OOC data file</span></i></b><b ><i ><span lang="EN-US" ><o:p></o:p></span></i></b></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" >This error value is returned when some problems appear in the process of working with files, e.g. in the case of no space left on device or problems with read / write operations because of algorithm issues. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" >* - the documentation error. Will be fixed in the version 10.3 Update3.</span></i><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><i><span lang="EN-US" >** - available memory means the RAM system's memory which is available at the moment of starting the calculations</span></i><i><span lang="EN-US" >.</span></i><span lang="EN-US" ><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" ><o:p></o:p></span></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/description-of-pardiso-errors-and-messages/</link>
      <pubDate>Fri, 14 Jan 2011 11:30:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/description-of-pardiso-errors-and-messages/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/description-of-pardiso-errors-and-messages/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Mac OS X* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
  </channel></rss>
