<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Tue, 24 Nov 2009 17:05:29 -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/technical-notes/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Pardiso OOC supports the extended set of matrices which can be solved on IA32</title>
      <description><![CDATA[ <br />
<div id="art_pre_template">
<p><b>The problem:</b> <br />Recently we received multiple inputs from our customers regarding 32bit Pardiso Out-of-Core (OOC) solver crashes when solving a big task.  <br />These failures are related to the fact that the memory needed for numerical factorization stage, one of Pardiso stages, exceeded 2Gb. 2 Gb roughly corresponds to the memory allocated at the factorization stage for 250*10^6 double nonzero elements of L factors.</p>
<p><b>Solution:<br /></b>The latest version of <b>Intel® MKL 10.2 Update 2</b> introduces the advanced option allowing solving such tasks for the real symmetric positive definite matrices ( mtype == 2 ). <br />The solution for the other types of matrices will be implemented in the next versions.</p>
<p>Below example (Laplace3D.cpp)  shows how such problem can be solved on ia32 system, It uses OOC "PARDISO" routine for a symmetric positive linear system with one right hand side.</p>
<p>Compile and link the example with MKL 10.2 Update 2 and run with the following input arguments:</p>
<p><b></b>test.exe  n1 n2 n3</p>
<p>where, <br />n1, n2 and n3<b> </b>are the dimensions of Laplace3D matrices. <br />The number of solved equations is be calculated as n1 * n2 * n3</p>
<p>For example,  <br />with the command line   <br />test.exe 140 140 100  <br /><br />The number of equations is equal 1.96*10^6 and so it requires 1.96 * 10 ^ 9 nonzero elements on the factorization stage. Such task can be solved on the system with RAM = 2 Gb and the available physical memory 1.2 Gb (at the moment when the task starts ).<br />Important to mention that MKL_PARDISO_OOC_MAX_CORE_SIZE environment variable was set 1000 Mb.</p>
<p><b>Remain limitations:</b></p>
<p>Let us note that 32bit Pardiso OOC solver cannot solves problems with more than 2 000*10^6 double nonzero elements of L factors, because of 32bit counters inside 32-bit PARDISO.</p>
<p>Pardiso will returns something like:<br />*** Error in PARDISO  (32-bit overflow problem.) error_num= -182<br />*** error PARDISO: reordering, symb. Factorization</p>
<p> </p>
<br /><b></b><br /><br /><br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/pardiso-ooc-solves-very-big-tasks-on-ia32</link>
      <pubDate>Sun, 08 Nov 2009 22:36:16 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/pardiso-ooc-solves-very-big-tasks-on-ia32#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/pardiso-ooc-solves-very-big-tasks-on-ia32</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>FFT interfaces in Intel® MKL</title>
      <description><![CDATA[ <br />
<p>Dear all,<br /><br />In this note I would like to remove some confusion about FFT interfaces supported by <a href="http://software.intel.com/en-us/intel-mkl" title="Intel MKL">Intel® MKL</a>.</p>
<p>Firstly, some history. The library has been providing <a href="http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/win/mkl/refman/fft/fft_intro.html#fft_intro" title="DFTI">Discrete Fourier Transforms Interface (DFTI)</a> since MKL 6.0 (2002). In 2005, Intel MKL 8.1 added open source FFTW2 and FFTW3 wrappers to support essential functionality of the widely known <a href="http://www.fftw.org" title="FFTW">Fastest Fourier Transform in the West</a> library. In order to use the wrappers one had to compile them by their favourite C compiler.</p>
<p>Starting with Intel MKL 10.2 (2009), in particular with the latest release of <a href="http://software.intel.com/en-us/forums/intel-math-kernel-library/topic/68490" title="Announcement of MKL 10.2 Update 2 at MKL Forum">MKL 10.2 Update 2</a>, <b>the FFTW3 interface has been fully integrated in MKL</b>, so that an application using FFTW3 can be linked directly to the Intel MKL. Thus, an application using FFT functionality of Intel MKL can use either DFTI or FFTW3 interface, without extra effort for building the wrappers.<br /><br />You are encouraged to upgrade your copy of Intel MKL to the <a href="http://software.intel.com/en-us/intel-mkl" title="Intel MKL">latest MKL release</a>.</p>
<p>With Intel MKL 10.2 and later all you need to use FFT functionality, either via DFTI or FFTW3 interface, is to <a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/&quot;&gt;link"></a><a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor" title="MKL Link line advisor">link</a><a></a> with Intel MKL.</p>
<p>For advanced use however the FFTW2 and FFTW3 wrappers to Intel MKL are provided in open source. For example,</p>
<ul>
<li>The FFTW2 interface doesn't support single precision and double precision interface in separate name spaces, so one has to compile the FFTW2 wrappers for the particular case of use.</li>
<li>The Fortran interface of FFTW3 in Intel MKL does not support GNU g77 name decoration scheme. In that case one can still use FFTW3 interface with Intel MKL by compiling FFTW3 wrappers specially for use with g77 compiler.</li>
<li>The implementation of the FFTW2 and FFTW3 wrappers may serve an additional usage example of MKL DFTI.</li>
</ul>
<p>More details on FFTW2 and FFTW3 interfaces to Intel MKL can be found in <a href="http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/win/mkl/refman/appendices/mkl_appG_Intro.html" title="MKL RM, Appendix G">MKL Reference Manual, Appendix G</a>.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/fft-interfaces-in-intelr-mkl</link>
      <pubDate>Mon, 26 Oct 2009 05:45:51 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/fft-interfaces-in-intelr-mkl#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/fft-interfaces-in-intelr-mkl</guid>
      <category>Intel Software Network communities</category>
      <category>Intel® MKL</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Code & Downloads</category>
    </item>
    <item>
      <title>mkl_solver* libraries are deprecated libraries since version 10.2 Update 2</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><br />
<p>Since version 10.2 update 2 of Intel(R) MKL, <br />all components of Direct Solver (Pardiso and DSS), Trust-Region (TR) Solver, Iterative Sparse Solver (ISS) and GNU Multiple Precision (GMP) were moved to standard MKL libraries.<br />So now solver ( e.g: mkl_solver.lib and mkl_solver_sequential.lib for IA32 ) libraries are <br />empty (for backward compatibility).</p>
<p>The list of deprecated libraries are the following:<br /><br />Intel(R) MKL for Windows:<br />=========================</p>
<p>ia32\lib\mkl_solver.lib<br />ia32\lib\mkl_solver_sequential.lib<br />em64t\lib\mkl_solver_ilp64.lib<br />em64t\lib\mkl_solver_ilp64_sequential.lib<br />em64t\lib\mkl_solver_lp64.lib<br />em64t\lib\mkl_solver_lp64_sequential.lib<br />ia64\lib\mkl_solver_ilp64.lib<br />ia64\lib\mkl_solver_ilp64_sequential.lib<br />ia64\lib\mkl_solver_lp64.lib<br />ia64\lib\mkl_solver_lp64_sequential.lib</p>
<p>Intel(R) MKL for Linux:<br />=======================<br /> <br />lib/32/libmkl_solver.a <br />lib/32/libmkl_solver_sequential.a<br />lib/em64t/libmkl_solver_ilp64.a<br />lib/em64t/libmkl_solver_ilp64_sequential.a<br />lib/em64t/libmkl_solver_lp64.a <br />lib/em64t/libmkl_solver_lp64_sequential.a<br />lib/ia64/libmkl_solver_ilp64.a<br />lib/ia64/libmkl_solver_ilp64_sequential.a<br />lib/ia64/libmkl_solver_lp64.a <br />lib/ia64/libmkl_solver_lp64_sequential.a</p>
<p><br />Therefore, the updated linking line will look like:<br /><br /><b>for Windows:</b></p>
<p>Linking on ia32:</p>
<p>static linking:<br /> icl mkl_gmp.cpp mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib<br />dynamic linking:<br /> icl fgmres_no_precon_c.cpp mkl_intel_c_dll.lib mkl_intel_thread_dll.lib mkl_core_dll.lib libiomp5md.lib</p>
<p>Linking on Intel(R)64:<br />static:<br /> ifort pardiso.f mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib<br />dynamic: <br /> ifort pardiso.f mkl_intel_lp64_dll.lib mkl_intel_thread_dll.lib mkl_core_dll.lib libiomp5md.lib</p>
<p><b>for Linux:</b></p>
<p>Linking on ia32:</p>
<p>static linking:<br /> icc mkl_gmp.cpp -L$MKLPATH -I$MKLINCLUDE \<br /> -Wl,--start-group \<br /> $MKLPATH/libmkl_intel.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a <br /> -Wl,--end-group\ -liomp5 -lpthread<br />dynamic linking:<br /> icc mkl_gmp.cpp -L$MKLPATH -I$MKLINCLUDE \<br /> -lmkl_intel -lmkl_intel_thread -lmkl_core -liomp5 -lpthread</p>
<p>where:<br />MKLPATH=$MKLROOT/lib/ia32,<br />MKLINCLUDE=$MKLROOT/include.</p>
<p>Linking on Intel(R)64:</p>
<p>static linking:<br />ifort pardiso.f -L$MKLPATH -I$MKLINCLUDE \<br />-Wl,--start-group \<br />$MKLPATH/libmkl_intel_lp64.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a \<br />-Wl,--end-group -liomp5 -lpthread</p>
<p>dynamic linking:<br />ifort pardiso.f -L$MKLPATH -I$MKLINCLUDE \<br />-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread</p>
<p>where:<br />In these examples,<br />MKLPATH=$MKLROOT/lib/em64t<br />MKLINCLUDE=$MKLROOT/include.</p>
<p> </p>
</div> ]]></description>
      <link>http://software.intel.com/en-us/articles/mkl_solver_libraries_are_deprecated_libraries_since_version_10_2_Update_2</link>
      <pubDate>Sun, 04 Oct 2009 08:39:24 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/mkl_solver_libraries_are_deprecated_libraries_since_version_10_2_Update_2#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/mkl_solver_libraries_are_deprecated_libraries_since_version_10_2_Update_2</guid>
      <category>Intel® MKL</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Using Intel® MKL with NAG* library</title>
      <description><![CDATA[ <p><b>Introduction</b></p>
<p>NAG ports a range of its software to both Intel®/Windows* and Intel®/Linux* platforms. <a target="_blank" href="http://www.nag.com/">NAG</a> and <a target="_blank" href="http://www.intel.com/">Intel</a> have been working closely together since the introduction of the Pentium chip, producing early ports of both libraries and visualization software for various launch events and demonstration CDs.</p>
<p>NAG is working closely with Intel to have early release ports of NAG products. Intel provides a good range of its latest hardware to NAG to ensure that our customers are well supported. In an Intel case study called, "Optimized Number Crunching" <a target="_blank" href="http://software.intel.com/file/6278">http://software.intel.com/file/6278</a>.</p>
<p>It points out Numerical Algorithms Group (NAG) authors high-quality numerical software libraries in order to deliver high performance linear algebra solutions to its customers. For the best solutions running on the latest Intel® processors, NAG libraries use the Intel® Math Kernel Library (Intel® MKL). The case study shows that using NAG &amp; Intel MKL for DGEMM (BLAS), DPOTRF(LAPACK), DPOTRF(LAPACK), and DGEQRF(LAPACK) can achieve up to 3.5 times increase over using NAG library alone.</p>
<p><b>List of NAG products available on Intel® processor-based systems</b></p>
<ul>
<li>(LUX) x86-32 Linux PC/Unix</li>
<li>(DLL) Intel-32 Windows PC/Windows</li>
<li>(NTI) Intel-32 Windows PC/Windows</li>
<li>(W32) x86-32 Windows PC/Windows</li>
<li>(W64) Itanium Windows64 PC/Windows</li>
</ul>
<p>See <a target="_blank" href="http://www.nag.com/doc/inun/fl22.html">http://www.nag.com/doc/inun/fl22.html</a> for the currently available implementation for the NAG Fortran Library, Mark 22.</p>
<p><b>List of NAG Installer’s Notes which include Intel® MKL</b></p>
<p><a target="_blank" href="http://www.nag.com/doc/inun/fl22/l6idcl/in.html">EM64T, Linux 64, Intel FORTRAN, Double Precision Installer's Note</a></p>
<p>Fortran compiler: Intel® Fortran compiler for Intel® 64, Version 10.1 and compatible.</p>
<p>Vendor library: Intel MKL version 10.1.1.019</p>
<p>The NAG library has been tested with Intel MKL version 10.1.1.019 and is included as a part of the product (see contents).</p>
<p><b>How to link Intel® MKL in NAG library</b></p>
<p>The following sections are extracted from NAG SMP Library, <a href="http://www.nag.com/doc/inun/fl22/l6idcl/un.html">Mark 22 Users’ Note</a> for Linux 64 (Intel® 64 / AMD64), Intel Fortran, Double Precision. Please refer to this document for details.</p>
<ol type="a">
<li><b>Libraries NOT in the linker search path</b> In this section we assume that the library has been installed in the directory [INSTALL_DIR]. By default, [INSTALL_DIR] is /opt/NAG/fll6i22dcl or /usr/local/NAG/fll6i22dcl depending on your system (see Installer's Note (in.html)); however it could have been changed by the installer. To identify [INSTALL_DIR] for this installation: 
<ul>
<li>if <tt>/opt/NAG/fll6i22dcl</tt> exists, then this is <tt>[INSTALL_DIR]</tt> </li>
<li>if <tt>/usr/local/NAG/fll6i22dcl</tt> exists, then this is <tt>[INSTALL_DIR]</tt> </li>
<li>consult the installer for the directory <tt>[INSTALL_DIR]</tt> </li>
</ul>
<p>To use the NAG Fortran Library and the supplied MKL libraries, you may link in the following manner:</p>
<p><code>ifort driver.f [INSTALL_DIR]/lib/libnag_mkl.a </code>\<br /><code>-Wl,--start-group $[INSTALL_DIR]/mkl_em64t/libmkl_intel_lp64.a \ </code><br /><code>$[INSTALL_DIR]/mkl_em64t/libmkl_intel_thread.a \</code><br /><code>$[INSTALL_DIR]/mkl_em64t/libmkl_core.a -Wl,--end-group -lguide -lpthread </code><br /><br />where driver.f is your application program; or <br /><br /><code>ifort driver.f [INSTALL_DIR]/lib/libnag_mkl.so -L[INSTALL_DIR]/mkl_em64t \</code><br /><code>-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_lapack -lmkl -lmkl_core \</code><br /><code>-lguide -lpthread</code><br /><br />if the shareable library is required.</p>
<p>The environment variable LD_LIBRARY_PATH must be set to include [INSTALL_DIR]/mkl_em64t. In addition if your application uses the NAG shareable library then the environment variable LD_LIBRARY_PATH must contain [INSTALL_DIR]/lib. If for example, LD_LIBRARY_PATH may be extended as follows to allow run time linkage.</p>
<p>In the C shell, type: <br /><br /><code>setenv LD_LIBRARY_PATH [INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_em64t:${LD_LIBRARY_PATH} </code><br /><br />to extend LD_LIBRARY_PATH.</p>
In the Bourne shell, type: <br /><br /><code>LD_LIBRARY_PATH=[INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_em64t:${LD_LIBRARY_PATH} </code><br /><code>export LD_LIBRARY_PATH </code><br /><br />to extend LD_LIBRARY_PATH. </li>
<br />
<li><b>Libraries in the linker search path</b>
<p>In this section we assume that the NAG compiled libraries and the supplied Intel MKL libraries are installed in, or are pointed at by symbolic links from a directory in the search path of the linker, such as /usr/lib.</p>
<p>To use the NAG Fortran Library and the supplied Intel MKL libraries in this context, you may link in the following manner:</p>
<p><code>ifort driver.f -lnag_mkl -lmkl_intel_lp64 -lmkl_intel_thread \</code><br /><code>-lmkl_lapack -lmkl -lmkl_core -lguide -lpthread</code></p>
<p>This will usually link to the shareable library in preference to the static library if both the libraries are at the same location.</p>
<p>To use the static library libnagsmp.a you need the -Bstatic compiler flag:</p>
<p><code>ifort -Bstatic driver.f -lnag_mkl -Wl,--start-group -lmkl_intel_lp64 \</code><br /><code>-lmkl_intel_thread -lmkl_core -Wl,--end-group -Bdynamic -lguide -lpthread</code></p>
<p>The environment variable LD_LIBRARY_PATH must be set to allow runtime linkage.</p>
<p>If for example your application has been linked with the NAG shareable library then the environment variable LD_LIBRARY_PATH must be extended as follows, to allow run time linkage.</p>
<p>In the C shell, type:</p>
<p><code>setenv LD_LIBRARY_PATH [INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_em64t:${LD_LIBRARY_PATH}</code></p>
<p>to extend LD_LIBRARY_PATH.</p>
<p>In the Bourne shell, type:</p>
<p><code>LD_LIBRARY_PATH=[INSTALL_DIR]/lib:[INSTALL_DIR]/mkl_em64t:${LD_LIBRARY_PATH}</code><br /><code>export LD_LIBRARY_PATH</code></p>
<p>to extend LD_LIBRARY_PATH.</p>
</li>
</ol>
<p><b>Other NAG and Intel MKL products information</b></p>
<p>NAG Software Downloads - SMP Library: <a target="_blank" href="http://www.nag.com/downloads/fsdownloads.asp">http://www.nag.com/downloads/fsdownloads.asp</a></p>
<p>The Intel® MKL Release Notes, Reference Manual, and User's Guide can all be found online: <a href="http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/">http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/</a>.</p>
<p>For additional Intel software products information visit: <a target="_blank" href="http://www.intel.com/software/products" title="http://www.intel.com/software/products">http://www.intel.com/software/products/</a></p>
<p>Intel, the Intel logo, Itanium, Pentium, Intel Xeon and VTune are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.</p>
<p><b>Operating System:</b></p>
<p>Red Hat* Linux, Red Hat* Desktop Linux* 3, Red Hat* Enterprise Linux Desktop 4, Red Hat* Desktop 3 Update 4, Windows* XP Professional x64 Edition, Windows Server* 2003 Standard x64 Edition, Windows Server* 2003 Enterprise x64 Edition, Red Hat* Enterprise Linux Desktop 3 Update 3, Red Hat* Enterprise Linux Desktop 3 Update 4, Red Hat* Enterprise Linux Desktop 3 Update 5, Red Hat* Enterprise Linux Desktop 4 Update 1, Red Hat* Enterprise Linux 2.1, SUSE* Linux 9.1, SUSE* Linux Enterprise Server 8.0, SUSE* Linux Ente rprise Server 9.0, Red Hat* Enterprise Linux 4.0, Windows* Storage Server, Redhat* Desktop 3 Update 5, Redhat* Desktop 3 Update 6, Redhat* Desktop 3 Update 7, Redhat* Desktop 4 Update 2, Redhat* Desktop 4 Update 3, Redhat* Desktop 4 Update 4, SuSE* Linux* Enterprise* Desktop 10, SUSE* Linux Enterprise Server 10, Windows Vista* 64, Windows Vista* Starter, 32-bit version, Windows Vista* Home Basic, 32-bit version, Windows Vista* Home Premium, 32-bit version, Windows Vista* Business, 32-bit version, Windows Vista* Enterprise, 32-bit version, Windows Vista* Ultimate, 32-bit version, Windows Vista* Home Basic, 64-bit version, Windows Vista* Home Premium, 64-bit version, Windows Vista* Business, 64-bit version, Windows Vista* Enterprise, 64-bit version, Windows Vista* Ultimate, 64-bit version, Windows Vista*, Windows Vista* 32, Windows Server* 2003 for Itanium-based Systems, Windows* XP Starter Edition, Red Hat* Enterprise Linux 5.0, Windows* XP 64-Bit Edition, Windows* XP Professional, Windows* XP Home Edition, Red Hat* Linux 6.2, Red Hat* Linux 6.2 SBE2, Red Hat* Linux 7.0, Red Hat* Linux 7.1, Red Hat* Linux 7.2, Red Hat* Linux 7.3, SUSE* Linux 7.3, SUSE* Linux 8.0, SUSE* Linux 8.1, Red Hat* Linux 8.0, SUSE* Linux 7.2, SUSE* Linux 7.1, SUSE* Linux 7.0, SUSE* Linux, Red Hat* Linux Advanced Server 2.x, Windows* XP Tablet PC Edition, Windows Server* 2003, Windows* XP Media Center Edition, Red Hat* Linux 9.0, Red Hat* Enterprise Linux 3.0, SUSE* Linux* 8.2, Windows Server* 2003 Standard Edition, Red Hat* Linux Advanced Server 3.x, SUSE* Linux* 9.x, Windows* XP 64-Bit Edition Version 2003</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/performance-tools-for-software-developers-using-intel-mkl-with-nag-library</link>
      <pubDate>Wed, 30 Sep 2009 14:41:23 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/performance-tools-for-software-developers-using-intel-mkl-with-nag-library#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/performance-tools-for-software-developers-using-intel-mkl-with-nag-library</guid>
      <category>Software Products General</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>New in Intel® MKL 10.2</title>
      <description><![CDATA[ <p><strong>New in Intel® MKL 10.2:</strong></p>
<ul>
<li>New features 
<ul>
<li>LAPACK 3.2 </li>
<li>Introduced implementation of the DZGEMM Extended BLAS function (as described at http://www.netlib.org/blas/blast-forum/). See the description of the ?gemm family of functions in the BLAS section of the reference manual. </li>
<li>PARDISO now supports real and complex, single precision data </li>
</ul>
</li>
<li>Usability/Interface improvements 
<ul>
<li>Sparse matrix format conversion routines which convert between the following formats: 
<ul>
<li>CSR (3-array variation) &lt;-&gt; CSC (3-array variation) </li>
<li>CSR (3-array variation) &lt;-&gt; diagonal format </li>
<li>CSR (3-array variation) &lt;-&gt; skyline </li>
</ul>
</li>
<li>Fortran95 BLAS and LAPACK mod files are now included 
<ul>
<li>Modules are pre-built with the Intel compiler and located in the include directory (see Intel® MKL User's Guide for full path) </li>
<li>Source is still included for use with other compilers </li>
<li>Documentation for these interfaces can be found in the Intel® MKL User's Guide </li>
</ul>
</li>
<li>The FFTW3 interface is now integrated directly into the main libraries 
<ul>
<li>Source code is still included to create wrappers for use with compilers not compatible with the default Intel® Fortran compiler convention for name decoration </li>
<li>See Appendix G of the Reference Manual for information </li>
</ul>
</li>
<li>DFTI_DESCRIPTOR_HANDLE now represents a true type name and can now be referenced as a type in user programs </li>
<li>Added parameter to Jacobi matrix calculation routine in the optimization solver domain to allow access to user data (see the description of the djacobix function in the reference manual for more information) </li>
<li>Added an interface mapping calls to single precision BLAS functions in Intel® MKL (functions with 's' or 'c' initial letter) to 64-bit floating point precision functions has been added on 64-bit architectures (See 'sp2dp' in the Intel® MKL User Guide for more information) </li>
<li>Compatibility libraries (also known as "dummy" libraries) have been removed from this version of the library </li>
</ul>
</li>
<li>Performance improvements 
<ul>
<li>Further threading in BLAS level 1 and 2 functions for Intel® 64 architecture 
<ul>
<li>Level 1 functions (vector-vector): (CS,ZD,S,D)ROT, (C,Z,S,D)COPY, and (C,Z,S,D)SWAP 
<ul>
<li>Increase in performance by up to 1.7-4.7 times over version 10.1 Update 1 on 4-core Intel® Core™ i7 processor depending on data location in cache </li>
<li>Increase in performance by up to 14-130 times over version 10.1 Update 1 on 24-core Intel® Xeon® processor 7400 series system, depending on data location in cache </li>
</ul>
</li>
<li>Level 2 functions (matrix-vector): (C,Z,S,D)TRMV, (S,D)SYMV, (S,D)SYR, and (S,D)SYR2 
<ul>
<li>Increase in performance by up to 1.9-2.9 times over version 10.1 Update 1 on 4-core Intel® Core™ i7 processor, depending on data location in cache </li>
<li>Increase in performance by up to 16-40 times over version 10.1 Update 1 on 24-core Intel® Xeon® processor 7400 series system, depending on data location in cache </li>
</ul>
</li>
</ul>
</li>
<li>Introduced recursive algorithm in 32-bit sequential version of DSYRK for up to 20% performance improvement on Intel® Core™ i7 processors and Intel® Xeon® processors in 5300, 5400, and 7400 series. </li>
<li>Improved LU factorization (DGETRF) by 25% over Intel MKL 10.1 Update 1 for large sizes on the Intel® Xeon® 7460 Processor; small sizes are also dramatically improved </li>
<li>BLAS *TBMV/*TBSV functions now use level 1 BLAS functions to improve performance by up to 3% on Intel® Core™ i7 processors and up to 10% on Intel® Core™2 processor 5300 and 5400 series. </li>
<li>Improved threading algorithms to increase DGEMM performance 
<ul>
<li>up to 7% improvement on 8 threads and up to 50% on 3,5,7 threads on the Intel® Core™ i7 processor </li>
<li>up to 50% improvement on 3 threads on Intel® Xeon® processor 7400 series. </li>
</ul>
</li>
<li>Threaded 1D complex-to-complex FFTs for non-prime sizes </li>
<li>New algorithms for 3D complex-to-complex transforms deliver better performance for small sizes (up to 64x64x64) on 1 or 2 threads </li>
<li>Implemented high-level parallelization of out-of-core (OOC) PARDISO when operating on symmetric positive definite matrices. </li>
<li>Reduced memory use by PARDISO for both in-core and out-of-core on all matrix types 
<ul>
<li>PARDISO OOC now uses less than half the memory previously used in Intel MKL 10.1 for real symmetric, complex Hermitian, or complex symmetric matrices </li>
</ul>
</li>
<li>Parallelized Reordering and Symbolic factorization stage in PARDISO/DSS </li>
<li>Up to 2 times better performance (30% improvement on average) on Intel® Core™ i7 and Intel® Core™2 processors for the following VML functions: v(s,d)Round, v(s,d)Inv, v(s,d)Div, v(s,d)Sqrt, v(s,d)Exp, v(s,d)Ln, v(s,d)Atan, v(s,d)Atan2 </li>
<li>Optimized versions of the following functions available for Intel® Advanced Vector Extensions (Intel® AVX) 
<ul>
<li>BLAS: DGEMM </li>
<li>FFTs </li>
<li>VML: exp, log, and pow </li>
<li>See important information in the Intel® MKL User's Guide regarding the mkl_enable_instructions() function for access to these functions </li>
</ul>
</li>
</ul>
</li>
</ul> ]]></description>
      <link>http://software.intel.com/en-us/articles/new-in-intel-mkl-10-2</link>
      <pubDate>Tue, 23 Jun 2009 11:43:12 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/new-in-intel-mkl-10-2#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/new-in-intel-mkl-10-2</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Single precision real and complex data support in PARDISO</title>
      <description><![CDATA[     Since version 10.2, Intel® Math Kernel Library starts supporting single precision computations for PARDISO * solver as well as double precision computations. <br />    This means that PARDISO solves tasks using single or double precision of real and complex data types. Each precision has its own pros and cons. Double precision variables have more digits to store value, so solver uses more memory for keeping data. But this mode allows solving matrices with better accuracy, and input matrices can have big condition numbers.<br />    Single precision variables have fewer digits to store values, so solver uses less memory than in the double precision mode. Additionally this mode usually takes less time. But as computations are made more roughly, only numerically stable process can be made using single precision **.<br /><br />    The precision of the computations is defined by iparm(28) .<br />If iparm(28)=0, then the input arrays (matrix a, vectors x and b) as well as all internal arrays are supposed to be in double precision. <br />If iparm(28)=1, then the input arrays must be presented in single precision. In this case all internal computations are made in single precision. <br /><br />Note that for double precision accuracy (iparm(28)=0) refinement steps can be calculated in quad/double precision depending on the sign of iparm(8). For single precision accuracy these computations are made in double/single precision. <br />Default value of iparm(28) is 0 - double precision ***. <br /><br />-- Notes –<br /><br />* Parallel Direct Sparse Solver Interface<br /><br />** Before using the single precision mode for Pardiso, you need to ensure that the input matrixes are well-conditioned.<br />You can use MKL subroutine zgesvd that computes the singular values as well as the condition number of the input matrix. It will help you to decide what precision you should use.<br /><br />*** Please note that iparm(28) value is stored in the PARDISO handle between PARDISO calls, so the precision mode can be changed only on the solver's phase 1.<br /> ]]></description>
      <link>http://software.intel.com/en-us/articles/single-precision-real-and-complex-data-support-in-pardiso</link>
      <pubDate>Mon, 22 Jun 2009 23:17:38 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/single-precision-real-and-complex-data-support-in-pardiso#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/single-precision-real-and-complex-data-support-in-pardiso</guid>
      <category>Tools</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>BLAS and LAPACK fortran95 mod files</title>
      <description><![CDATA[ <p>    Starting version 10.2, Intel® Math Kernel Library contains the precompiled Fortran 95 interface libraries for BLAS and LAPACK for Intel® Fortran compiler as well as the corresponding precompiled interface modules for BLAS95 and LAPACK95.</p>
<p><span style="text-decoration: underline;">Why:<br /></span>    It is made for a user convenience. With these libraries and modules provided there is no longer need for a user to build the interface libraries while linking the applications using BLAS and LAPACK 95 interfaces.</p>
<p>    In the previous versions a user needs to build the interface libraries beforehand with using Fortran 95 wrappers for BLAS and LAPACK (the wrappers located in &lt;mkl install path&gt;/interfaces directory).</p>
<p><span style="text-decoration: underline;">Solution Details:</span></p>
<p>Intel® Math Kernel Library 10.2 package contains precompiled BLAS95 and LAPACK95 interface libraries for all architectures: IA32, Intel®64 and IA64. Namely, for windows: </p>
<p>• IA32: mkl_blas95.lib, mkl_lapack95.lib<br />•  Intel®64 and IA64:<br />        For LP64 interfaces<strong> </strong>:  mkl_lapack95_lp64.lib, mkl_blas95_lp64.lib<br />        For ILP64 interfaces:  mkl_lapack95_ilp64.lib mkl_blas95_ilp64.lib</p>
<p>For complete information a user can refer to the UserGuide manual document, the Chapter 2 table "Table 7-1 Interface libraries and modules". </p>
<p>Precompiled interfaces modules for BLAS95 and LAPACK95 located in interface-specific subdirectories of the Intel® MKL include directories.  This is the list of precompiled modules:</p>
<p>blas95.mod - Fortran 95 interface module for BLAS (BLAS95).<br />lapack95.mod - Fortran 95 interface module for LAPACK (LAPACK95).<br />  - f95_precision.mod       - Fortran 95 definition of precision parameters for BLAS95 and LAPACK95.<br />  - mkl95_blas.mod (*)    - Fortran 95 interface module for BLAS (BLAS95), identical to blas95.mod.<br />  - mkl95_lapack.mod (*) - Fortran 95 interface module for LAPACK (LAPACK95), identical to lapack95.mod.<br />  - mkl95_precision.mod (*) - Fortran 95 definition of precision parameters for BLAS95 and LAPACK95, identical to f95_precision.mod.</p>
<p>    Customer should use option  /module:path (in Windows environment) or -module path (in Linux and Mac OS)  when building the application with Intel® Fortran Compiler ( ** ).<br />    For gfrortran or pgf95, please, refer to the corresponding user guides of these compilers.</p>
<p>Please, note that all mentioned above precompiled modules and libraries <strong>are built using by Intel® Fortran Compiler</strong>. Therefore, while using another supported compiler (PGI or GNU gfortran compiler) a user should build the interface libraries and modules by corresponding compiler using the makefiles located in the interface directory <br />( &lt;mkl root&gt;/interfaces/blas95 and  &lt;mkl root&gt;/interfaces/lapack95 ) </p>
<p>Notes:<br />     *  f95_precision.mod, mkl95_lapack.mod and mkl95_precision.mod files will be removed in one of the future releases. The current version supports two USE statements - so you can choose or "USE MKL95_LAPACK" or " USE LAPACK95 ". For the future compatibility we recommend using "USE LAPACK95" statement.</p>
<p>     ** While using Intel® Fortran compiler .mod files are searched in the directories in the following order:<br />the directory of the source file that contains the USE statement <br />- the directories specified by the -module path (Linux and Mac OS) or /module:path (Windows) option<br />- the current working directory<br />- the directories specified by the -Idir (Linux and Mac OS) or /include (Windows) option<br />- the directories specified with the FPATH (Linux and Mac OS) or INCLUDE (Windows) environment variable<br />- standard system directories<br /><br /><span style="text-decoration: underline;">Sample</span><br /><a href="http://software.intel.com/file/21711">Here</a> is a small Intel Fortran Project in Visual Studio 2005 for your reference</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/blas-and-lapack-fortran95-mod-files</link>
      <pubDate>Mon, 22 Jun 2009 23:10:46 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/blas-and-lapack-fortran95-mod-files#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/blas-and-lapack-fortran95-mod-files</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>{SC,DZ}GEMM function</title>
      <description><![CDATA[ Intel® MKL 10.2 provides new kernels, {SC, DZ}GEMM, mixed precision matrix-matrix multiply. It allows users to perform matrix multiply of two matrices with different precision without the need to split the complex matrix into real matrix and call {S, D}GEMM twice by them. The formula can be expresses as following:<br />C := alpha * op(A) * op(B) + beta * C<br />where: <br />A is a single precision matrix for SCGEMM, and double precision matrix for DZGEMM<br />B and C are single precision complex matrices for SCGEMM, and double precision complex matrices for DZGEMM<br />alpha and beta are single precision complex variables for SCGEMM, and double precision complex variables for DZGEMM<br />The {SC,DZ}GEMM are threaded as the rest of matrix-matrix multiply kernels in MKL. The calling convention is as below:<br />{SC,DZ}GEMM (transa, transb, m, n, k, alpha, a lda, b, ldb, beta, c, ldc)<br />The detailed description of parameters can be found in the MKL Reference Manual, Chapter 2 BLAS and Sparse BLAS routines.<br /> ]]></description>
      <link>http://software.intel.com/en-us/articles/scdzgemm-function</link>
      <pubDate>Mon, 22 Jun 2009 22:56:25 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/scdzgemm-function#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/scdzgemm-function</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Software News</category>
    </item>
    <item>
      <title>Intel® MKL LAPACK 3.2</title>
      <description><![CDATA[ <p>LAPACK 3.2 features have been added to Intel® MKL 10.2. LAPACK 3.2 introduces the following new features as described on netlib.org:</p>
<ul>
<li>Extra Precise Iterative Refinement </li>
<li>Non-Negative Diagonals from Householder QR </li>
<li>High Performance QR and Householder Reflections on Low-Profile Matrices </li>
<li>New fast and accurate Jacobi SVD </li>
<li>Routines for Rectangular Full Packed format </li>
<li>Pivoted Cholesky </li>
<li>Mixed precision iterative refinement routines for exploiting fast single precision hardware </li>
<li>Some new variants added for the one sided factorization </li>
<li>More robust DQDS algorithm</li>
</ul> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-mkl-lapack-32</link>
      <pubDate>Mon, 22 Jun 2009 20:41:18 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-mkl-lapack-32#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-mkl-lapack-32</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Sparse matrix format conversion routines</title>
      <description><![CDATA[ <div id="art_pre_template">
<p>Intel® MKL v.10.2 provides auxiliary routines called as matrix converter routines that convert sparse matrix from one storage format to another. These routines are declared in mkl_spblas.fi for FORTRAN 77 interface and in mkl_spblas.h for C interface.</p>
<p>See below the list of the Matrix Converter Routines available:</p>
<p><span style="text-decoration: underline;">mkl_ddnscsr</span>:<br />Stores a sparse matrix in the CSR format (3-array variation).</p>
<p><span style="text-decoration: underline;">mkl_dcsrcoo</span>:<span style="text-decoration: underline;"> <br /></span>Converts a sparse matrix in the CSR format (3-array variation) to the coordinate format and vice versa.</p>
<p><span style="text-decoration: underline;">mkl_dcsrbsr</span>:<br />Converts a sparse matrix in the CSR format to the BSR format (3-array variations) and vice versa.</p>
<p><span style="text-decoration: underline;">mkl_dcsrcsc</span>:<br />Converts a sparse matrix in the CSR format to the CSC and vice versa (3-array variations).</p>
<p><span style="text-decoration: underline;">mkl_dcsrdia</span>:<br />Converts a sparse matrix in the CSR format (3-array variation) to the diagonal format and vice versa.</p>
<p> <span style="text-decoration: underline;">mkl_dcsrsky</span>:<br />Converts a sparse matrix in the CSR format (3-array variation) to the sky line format and vice versa.</p>
<p>User can also refer to the MKL Manual ( mklman.pdf ) document<strong>, Chapter 2: "BLAS and Sparce BLAS Routines" </strong>for further information.<strong></strong></p>
<p><span style="text-decoration: underline;">Comment</span> 1:<br />There are 2 examples program for using MKL Sparse format converters. You can find these files into directory: MKLROOT\examples\spblas\source\ and you can find there two "C" and "Fortran" based examples: converters_c.c and converters_f.f</p>
<p><span style="text-decoration: underline;">Comment 2</span>:<br />know <strong><span style="text-decoration: underline;">restriction</span></strong> for this topic: the current implementation supports only double precision data types for such functionality<br />by another words single complex, double complex and single precition data types are not supported currently</p>
<p><span style="text-decoration: underline;">Comment 3</span>:<br />if somebody are interested in supporting another data types (mentioned into comment 2), we are encourage you submit the issue against MKL to Premier support (<a href="https://premier.intel.com/">https://premier.intel.com/</a> )</p>
<br /><br /><br /><br /><br /><br /><br /><br /><br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/sparse-matrix-format-conversion-routines</link>
      <pubDate>Mon, 18 May 2009 11:32:31 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/sparse-matrix-format-conversion-routines#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/sparse-matrix-format-conversion-routines</guid>
      <category>ISN General</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
  </channel></rss>