<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Wed, 25 Nov 2009 03:39:41 -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/tips-and-techniques/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/tips-and-techniques/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Performance slow down when dynamically linking with Intel MKL</title>
      <description><![CDATA[ <p><br /><br />When dynamically linking with Intel MKL, users may find performance slow down in a few test applications. This is because loading dynamic libraries at runtime brings overhead to the application. The problem only happens when data set in the application is very small, and the overhead of shared library load cannot be ignored. <br /><br />The following conditions can help to identify this problem: 1) the data set is small in the application. 2) The second run may have better performance than the first run. 3) The problem does not happen when statically linking with Intel MKL.<br /><br />Note, when users benchmark small data with test application, the shared library load may impact performance result. Users can link MKL statically to avoid the problem. In real applications, overhead of shared library load is negligible.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/performance-slow-down-when-dynamically-linking-with-intel-mkl</link>
      <pubDate>Tue, 24 Nov 2009 18:39:33 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/performance-slow-down-when-dynamically-linking-with-intel-mkl#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/performance-slow-down-when-dynamically-linking-with-intel-mkl</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>Using Intel® MKL in your Python program</title>
      <description><![CDATA[ <b>Introduction</b><br /><br />This article describes how to use the Intel® Math Kernel Library (Intel® MKL) from a Python program. There's more than one way to write Python programs to interface with native libraries. I've simply chosen one so that I can emphasize what might be less commonly known: how to build a custom shared library from Intel MKL so that you can call it from your script. <br /><br />I'll run through the basics steps of accessing Intel MKL from Python 2.6 on a 64-bit Linux OS. The example program calls the CBLAS interface to the DGEMM function which performs a multiplication (and optional add) on general, double precision matrices. Much more about these functions can be found in the Intel® MKL reference manual (<a href="http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/">available online here</a>). <br /><br /><ol>
<li><b>Build a custom library:</b> To interface with Intel MKL from Python we recommend you use the custom library builder in the tools/builder sub-directory of the Intel MKL package. The Intel® MKL User's Guide has documentation on this tool (<a href="http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/">docs online</a>). Here briefly are the steps I took to do this: <br /><br /><ol>
<li>Set up your environment to use the desired version of Intel MKL:<br /><code>source /<i>&lt;MKLpath&gt;</i>/tools/environment/mklvarsem64t.sh</code></li>
<li>Build the DLL:<br /><code>cd /<i>&lt;MKLpath&gt;</i>/tools/builder</code><br /><code>make em64t name=~/libmkl4py export=cblas_list</code> </li>
<li>The library as built above will depend on the OpenMP* threading runtime library used by Intel MKL (libiomp5.so). You should make sure that both libraries, libmkl4py.so and libiomp5.so, are in a directory specified in the LD_LIBRARY_PATH environment variable. </li>
</ol></li>
<li><b>Call Intel MKL in your Python script:</b> The following is a simple script (also available <a href="http://software.intel.com/file/22334">here</a>) that loads the shared library just created and calls the matrix function. <br />
<ul>
<code></code>
<pre name="code" class="python">from ctypes import *<br /><br /># Load the share library<br />mkl = cdll.LoadLibrary("./libmkl4py.so")<br />cblas_dgemm = mkl.cblas_dgemm<br /><br />def print_mat(mat, m, n):<br />  for i in xrange(0,m):<br />    print " ",<br />    for j in xrange(0,n):<br />      print mat[i*n+j],<br />    print <br /><br /># Initialize scalar data<br />Order = 101  # 101 for row-major, 102 for column major data structures<br />TransA = 111 # 111 for no transpose, 112 for transpose, and 113 for conjugate transpose<br />TransB = 111<br />m = 2<br />n = 4<br />k = 3<br />lda = k<br />ldb = n<br />ldc = n<br />alpha = 1.0<br />beta = -1.0<br /><br /># Create contiguous space for the double precision array<br />amat = c_double * 6      <br />bmat = c_double * 12<br />cmat = c_double * 8<br /><br /># Initialize the data arrays<br />a = amat(1,2,3, 4,5,6)<br />b = bmat(0,1,0,1, 1,0,0,1, 1,0,1,0)<br />c = cmat(5,1,3,3, 11,4,6,9)<br /><br />print "\nMatrix A ="<br />print_mat(a,2,3) <br />print "\nMatrix B ="<br />print_mat(b,3,4)<br />print "\nMatrix C ="<br />print_mat(c,2,4)<br /><br />print "\nCompute", alpha, "* A * B + ", beta, "* C"<br /><br /># Call Intel MKL by casting scalar parameters and passing arrays by reference<br />cblas_dgemm( c_int(Order), c_int(TransA), c_int(TransB), \<br />             c_int(m), c_int(n), c_int(k), c_double(alpha), byref(a), c_int(lda), \<br />             byref(b), c_int(ldb), c_double(beta), byref(c), c_int(ldc))<br /><br />print_mat(c,2,4)<br />print</pre>
</ul>
</li>
<li>A few notes: 
<ul>
<li>Matrices in the BLAS and LAPACK parts of Intel MKL are stored in one dimensional arrays and integers are used to specify their geometry. </li>
<li>I've actually loaded here CBLAS interface to the general matrix multiply function which allows you to choose how the matrix is specified. In my script I've listed the matrix by rows (row-major ordering). If you do not use the cblas interface to the BLAS or if you use LAPACK you should keep in mind that these functions assume the Fortran method of listing matrices by columns (column-major ordering). </li>
</ul>
</li>
</ol>Here is the Python code I created that implements the steps above: <a href="http://software.intel.com/file/22334">matmult.py</a><br /><br /><strong>Examples code:</strong><br /><br />
<p>We extended the list of examples demonstrate how possible to call different ( not only widespread example like dgemm ) from the Python program:</p>
<p>See the list of 3 different examples attached:<br />dft.zip  - shows the Python program calls 1D DFTI API<br />spblas.zip - shows how to call  matrix-matrix multiplication routine for a sparse matrix stored in the block compressed format (BSR)<br />vsl.zip - shows how to call vdRngGaussian routine ( generates normally distributed random numbers)  from VSL domain.</p>
<p><strong>Notes:<br /></strong>Each zip file contains  *.res and *_list files mean input file and file for custom library building correspondingly</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/using-intel-mkl-in-your-python-programs</link>
      <pubDate>Fri, 13 Nov 2009 06:59:08 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/using-intel-mkl-in-your-python-programs#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/using-intel-mkl-in-your-python-programs</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>Tips for using PARDISO</title>
      <description><![CDATA[ <strong><span style="text-decoration: underline;">Introduction<br /></span></strong><br />The interface to the PARDISO solver has many parameters and learning to use it for the first time can take a lot of time. The DSS interface for PARDISO was created to provide a simpler interface to the functionality, but often users still want to use the PARDISO interface. This article provides some tips for getting started and corrects some of the mistakes made by first-time users and even occasionally by experienced users.<br /><br /><br /><strong><span style="text-decoration: underline;">General tips</span></strong><br /><br /><strong>Explore the examples</strong> in the examples/solver directory of MKL. By choosing an example program that solves a problem that is close to the sort of problem you will be solving you can get to know some of the most helpful and relevant parameter settings for your case. <br /><br /><strong>Use the matrix checker: </strong>The iparm(27) parameter of PARDISO controls the input checker. By default it is turned off (iparm(27)=0), so you'll need to turn it on by setting iparm(27)=1. PARDISO will run some checks on your data structure and return an error message if it finds that something was wrong. This can help you find simple errors in your indexing as well as correct misunderstandings about how PARDISO expects your matrix to be represented and stored (e.g., a symmetric matrix should be stored in <em>upper</em> triangular form).<br /><br /><strong>Check your link line:</strong>Sometimes a program linked against Intel MKL can misbehave (crash, hang, etc.) because the program was linked against the wrong threading layer (which assumes a specific threading runtime) or wrong interface (e.g., ILP64 v. LP64; cdecl v. stdcall). The <a target="_blank" href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/">link line advisor </a>may be helpful if you're using the latest version of Intel MKL. For earlier versions you should consult the Intel MKL User's Guide chapter 5 on linking your application.<br /><br /><br /><strong><span style="text-decoration: underline;">Important settings</span><br /></strong><br /><strong>Use message level information</strong>: The solver prints statistical information to the screen if the input parameter msglvl = 1 and generates no output if msglvl = 0. There is no default value for this option.<br /><br /><strong>Single and double precision</strong>: Starting version 10.2 Intel® Math Kernel Library supports computations in single precision as well as double precision. To switch between single and double precision modes you should use iparm(28). The default mode of iparm(28) is 0, which corresponds to the double precision. If iparm(28) = 1 all internal computations are made in single precision. Please refer to this <a href="http://software.intel.com/en-us/articles/single-precision-real-and-complex-data-support-in-pardiso/">article</a> for more information on these options.<br /><br /><strong>Use default values</strong>: To get started quickly with PARDISO you can use the default values for each of the elements in the iparm array. Setting iparm(1) = 0 will cause PARDISO to use the default values for the rest of the array: iparm(2) and iparm(4) through iparm(64). Otherwise, you must supply all the values in the iparm array. <br /><br /><strong>Rewrite the solution</strong>: if you need to store the output solution on the right hand side of array b, choose iparm(6) = 1. <br />The default value of iparm(6)=0, which corresponds array x contains the solution.<br /><br /><strong><span style="text-decoration: underline;"><br />Other sources of information<br /></span></strong><br />If you're still having trouble and/or you suspect you've found a problem in Intel MKL, you might check the <a href="http://software.intel.com/en-us/articles/known-limitations-in-intel-mkl-10-2/">known issues article</a> in the <a href="http://software.intel.com/en-us/articles/intel-mkl-kb/all/1/">Intel MKL knowledgebase</a>. Another option is to search the <a href="http://software.intel.com/en-us/forums/intel-math-kernel-library/">Intel MKL forum </a>for other reports of a similar problem or post a question of your own. ]]></description>
      <link>http://software.intel.com/en-us/articles/pardiso-tips</link>
      <pubDate>Fri, 28 Aug 2009 16:12:50 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/pardiso-tips#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/pardiso-tips</guid>
      <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® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>new Compiler Options that may be useful for MKL Users</title>
      <description><![CDATA[ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:\DOCUME~1\gfedorov\LOCALS~1\Temp\msohtml1\03\clip_filelist.xml" />
<!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]-->

<!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} --> <!--[endif]--> 
<table class="MsoNormalTable" style="width: 100%;" width="100%" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="padding: 2.25pt;">
<p class="MsoNormal">The latest versions of Intel® C++ and Fortran Compilers (   * ) introduce new options that will be useful for MKL users.<br /> These options provide to reference in compile time and link with MKL without   having to know all the nuances of how the performance libraries can be   combined.<o:p></o:p></p>
<p class="MsoNormal"><br /> On Windows, this option is: /Qmkl[:&lt;lib&gt;] <br /> and for Linux and Mac OS X correspondingly this option is –mkl[=&lt;lib&gt;]<br /> <!--[if !supportLineBreakNewLine]--><br /> <!--[endif]--><o:p></o:p></p>
<table class="MsoNormalTable" style="width: 90%; border-collapse: collapse;" width="90%" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="padding: 3pt; width: 30%;" width="30%" valign="top">
<p>Where argument &lt;lib&gt;<o:p></o:p></p>
<p><o:p> </o:p></p>
</td>
<td style="padding: 3pt;" valign="top">
<p>Indicates the part of the library that the compiler should link to.     Possible values are:<o:p></o:p></p>
<table class="MsoNormalTable" style="width: 100%; border-collapse: collapse;" width="100%" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="padding: 3pt; width: 30%;" width="30%" valign="top">
<p><span class="keyword">parallel</span><o:p></o:p></p>
</td>
<td style="padding: 3pt;" valign="top">
<p>Tells the compiler to link using the threaded part of the Intel® MKL.       This is the default if the option is specified with no <var>lib</var>.<o:p></o:p></p>
</td>
</tr>
<tr>
<td style="padding: 3pt; width: 30%;" width="30%" valign="top">
<p><span class="keyword">sequential</span><o:p></o:p></p>
</td>
<td style="padding: 3pt;" valign="top">
<p>Tells the compiler to link using the non-threaded part of the Intel®       MKL.<o:p></o:p></p>
</td>
</tr>
<tr>
<td style="padding: 3pt; width: 30%;" width="30%" valign="top">
<p><span class="keyword">cluster</span><o:p></o:p></p>
</td>
<td style="padding: 3pt;" valign="top">
<p>Tells the compiler to link using the cluster part and the sequential       part of the Intel® MKL.<o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal">By default this option /Qmkl is OFF.<br /> <br /> The example of using on Windows OS<br /> icl /Qmkl /Fetest.exe mkl.cpp <o:p></o:p></p>
<p class="MsoNormal"><br /> For more details see <span> </span>Compiler User and   Reference Guide.<o:p></o:p></p>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal">Notes:<o:p></o:p></li>
</ul>
<p class="MsoNormal" style="margin-left: 0.25in;">The option is available staring   from the following versions of <span> </span>Intel(R)   C++ <span> </span>and Fortran Compilers version 11.1   <o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 0.25in;">Windows* Version 11.1.038,<br /> Linux* version 11.1.046 <br /> and for Mac OS* X version 058<o:p></o:p></p>
</td>
</tr>
<tr>
<td style="padding: 2.25pt;">
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal">This        option is available for ia32, Intel®64 and IA-64 architectures.<o:p></o:p></li>
</ul>
<p class="MsoNormal" style="margin-left: 0.25in;"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/new-compiler-options-that-may-be-useful-for-mkl-users</link>
      <pubDate>Sun, 23 Aug 2009 12:27:08 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/new-compiler-options-that-may-be-useful-for-mkl-users#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/new-compiler-options-that-may-be-useful-for-mkl-users</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>How am I notified of updates for my registered products?</title>
      <description><![CDATA[ <p> </p>
<div><b>Problem : </b><br />How am I notified of updates for my registered products?<br /><br /><b>Resolution : </b><br />1) Login to the Intel® Registration Center by entering your Login ID and Password in the Registered Users Login section  of  the web page. You will see a list of all products you have subscribed;<br />2) Click on My account/Change notification preference on My products page below.<br /><br /><img src="http://software.intel.com/file/21592" alt="Notifacation+update+1.PNG" title="Notifacation+update+1.PNG" /><br /><br />3) You will be directed to the page below, check the box of <label for="ctl00_MainContentPlaceHolder_ckYesFilesNotification">Yes, I would like to receive Intel® Software Product update notifications.<br /><img src="http://software.intel.com/file/21593" alt="Notifacation+update+2.PNG" title="Notifacation+update+2.PNG" /><br /><br />4) Click Save Notification Prefences.<br /><br />You will then receive the registered product update notifications.</label></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-notified-updates-for-products</link>
      <pubDate>Mon, 10 Aug 2009 00:40:04 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-notified-updates-for-products#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-notified-updates-for-products</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 Amplifier Knowledge Base</category>
      <category>Intel® Parallel Composer Knowledge Base</category>
      <category>Intel® Parallel Inspector Knowledge Base</category>
      <category>Intel® Software Development Products Registration Center Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
      <category>Intel® VTune™ Performance Analyzer for Linux* Knowledge Base</category>
      <category>Intel® VTune™ Performance Analyzer for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>How to build MKL application in Intel Visual Fotran (MSVC*2005)</title>
      <description><![CDATA[ <p><strong>Software Requirement:</strong> <br />1. Intel® Visual Fortran Compiler Professinal for Windows.  <br />   The compiler were requied to installed and intergated to Microsoft VC 2005 or VC 2008 correctly.</p>
<p>2. Intel® MKL for windows<br />   You can install MKL seperately or install the intergarted MKL when install Intel Fortran Compiler Professional version. <br /><br />3. Microsoft* Visual Studio 2005 or 2008.<br />For who'd like to build x64 bit appliation, please install the MSVC* package which supports X64 development. <br /><br /><strong>Step1 : Which kind of application: ia32, em64t or ia64 application you need to build?</strong><br />Which target machine you need your application run on? <br />ia32: 32 bit application. <br />EM64t: Intel 64 bit application<br />IA64:  Intel Itanium 64bit application. <br /><br />Most of us may build ia32 or em64t application on a xeon machine with windows*. Then in MSVC* environment, please check the project configuration manager=&gt; active platform.  They should be  "ia32" or "X64" (which is corresponding to em64t). <br /><br /><strong>Step 2 : Which MKL library you need link against?</strong> <br /><strong>2.1)</strong> please check the on-line KB article <a href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/" title="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/"><b>Intel® Math Kernel Library Link Line Advisor</b></a>  After choose it, you can get which libraries you need to list.  <br /><br />For example, <br />"mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib" are enough for a ia32 windows application generally.<br />"mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib" are ok for a X64 windows appliation <br /><br /><strong>Step 3: How to link MKL in your project manually?<br />3.1)</strong>  Please follow the steps in <a href="http://software.intel.com/en-us/articles/integrating-a-microsoft-visual-studio-ide-project-with-intel-mkl/"><strong>how to use MKL in MSVC</strong></a>  to add the include path, library path and mkl library as the article show. <br /><br />For example, add include path manually<br /><strong><img width="753" src="http://software.intel.com/file/23743" alt="fortran_include.JPG" height="461" title="fortran_include.JPG" /></strong><br /><br />please take care of about library path,  you need enter right directory:<br />&lt;MKL install dir&gt;\ia32,  for ia32 application<br />&lt;MKL install dir&gt;\em64t, for X64 application<br />&lt;MKL install dir&gt;\ia64, for IA64 application<br />they can't be mixed. <br /><br /><br /><strong>Step 4: How to link MKL in your project automatically - One Button Support  (optional)<br /></strong>The recent MKL version have provided one "build" menu in MSVC environment. Click <strong>one button</strong>, all of environment setting and required library are ready in your project. <br /><strong>* This step can replace the step3 in most of case.   <br />Or if the button is not show, please try step3, set the paths and library manually. <br />4.1)</strong> See below sreencopy in MSVC 2005, click the version you need<br /><img width="576" src="http://software.intel.com/file/20711" height="348" /><br />Then the required library will be added in your project automatically. <br /><img width="576" src="http://software.intel.com/file/20712" height="348" /><br /><br /><strong>4.2) In Visual Fortran compiler,</strong> it is a little different,<strong> to integrate MKL,  </strong>please click the compiler option as below, change the "No" to value like /Qmkl:parallel or /Qmkl:sequential<br /><strong><img src="http://software.intel.com/file/21492" alt="OneButton_IVF.jpg" title="OneButton_IVF.jpg" /><br /></strong></p>
<p><br />Please note: some interface libraries (i.e mkl_lapack95.lib mkl_blas95.lib fftw3xc_ms) are not MKL standard library,  so the "one button" integration don't support it.  You may add them manually if you need to use them. <br /><strong><br />Step 5: About Compaq*Visual Fortran support and porting from 32bit to 64bit</strong> <strong>(Optional for who have used CVF)<br /></strong>CVF and Intel Fortran compiler use different call convention by default:<br />CVF: stdcall <br />Intel Fortran, C Compiler: cdecl (default interface of the Microsoft Visual C* application) <br /><br /><strong>5.1)</strong> MKL support both of them on ia32 platform, but if you are porting from CVF to intel Fortran, you may take care of the required library: mkl_intel_s or mkl_intel_c.lib</p>
<ul>
<li>Using the CVF compiler<br />The CVF compiler will link with mkl_intel_s[_dll].lib if routines are compiled with the default interface. However, if you compile with the option /iface=(cref,nomixed_str_len_arg), the compiler will link with mkl_intel_c[_dll].lib . </li>
<li>Using the Intel® Fortran compiler<br />The Intel Fortran compiler will link with mkl_intel_c[_dll].lib by default. But if the /Gm option is used, call mkl_intel_s  [_dll].lib (/Gm enables CVF and Powerstation calling convention compatibility, so does /iface:cvf).</li>
</ul>
<p><strong>5.2)</strong> MKL don't provide em64t and IA64 CVF interface support.  So if you are porting CVF 32bit application to X64 or IA64 platform with Intel Fortran compiler and MKL. Please note, you must to link "mkl_intel_lp64|ilp64, mkl_intel_thread, mkl_core.lib" and remove the compiler option /Gm or /iface:cvf.<br /><br />Here is a MSVC 2005 project (Intel fortran 11.0.0.074 IA32 application) for your reference.<a href="javascript:void(0)" onclick="ndownload('http://software.intel.com/file/21493')"><strong>DFT_VF_sample.zip</strong></a><br /><br /><strong>Troubleshooting<br /></strong>When build the project, <br />1. <strong>fatal error LNK1104: cannot open file 'mkl_xxx.lib'<br /></strong>please make sure the library is in the library path and the path you marked in step 3 or step 4 are right one<br /><br />2. <strong>"error #7002: Error opening the compiled module file.  Check INCLUDE paths. [MKL_DFTI]."<br /></strong>Please add the header file mkl_dfti.f90 in your code, for example, <br /><br />! Include to build module MKL_DFTI<br />INCLUDE 'mkl_dfti.f90'<br />before  the code line<br />USE MKL_DFTI<br /><br />Or copy the mkl_dfti.f90 file to the source directory of your project and include it in your Project. </p> ]]></description>
      <link>http://software.intel.com/en-us/articles/how-to-build-mkl-application-in-intel-visual-fotran-msvc2005</link>
      <pubDate>Mon, 03 Aug 2009 01:50:56 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/how-to-build-mkl-application-in-intel-visual-fotran-msvc2005#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/how-to-build-mkl-application-in-intel-visual-fotran-msvc2005</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
      <category>Intel® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>Intel® Math Kernel Library Link Line Advisor</title>
      <description><![CDATA[ <p><strong>Introduction: <br /></strong><br />The Intel® Math Kernel Library (Intel® MKL) is designed to run on multiple processors and operating systems. It is also compatible with several compilers and third party libraries, and provides different interfaces to the functionality. To support these different environments, tools, and interfaces Intel MKL provides mutliple libraries from which to choose.</p>
<p>To see what libraries are recommended for a particular use case, specify the parameters in the drop down lists below.</p>
<br /><br /><iframe src="http://software.intel.com/file/20465" style="width: 660px; height: 630px;"></iframe><br /><br />
<p><strong>Note:</strong> For applications running on IA-32 with the Windows* operating system it is possible to use mkl_intel_s.lib instead of mkl_intel_c.lib (or mkl_intel_s_dll.lib instead of mkl_intel_c_dll.lib). This interface is compatible with the Compaq* Visual Fortran calling convention. <br /><br /><strong>Note:</strong> For applications calling Fortan 95 Interface library for BLAS an LAPCK: mkl_blas95.lib mkl_blas95_lp64.lib mkl_lapack95.lib and so on. Please add them manually. For example,  the link line is like:<br />mkl_lapack95.lib mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib<br /><br /><strong>Note:</strong> if the option "-Qopenmp or -openmp" are not recognized by the compiler, please use libiomp5md.lib or -liomp5 instead.</p>
<p>Find more information on linking in the <a href="http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/">Intel® MKL User's Guide</a></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor</link>
      <pubDate>Thu, 25 Jun 2009 12:53:23 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor</guid>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>(Intel® IPP) - image/matrix size and high performance</title>
      <description><![CDATA[ <!--CTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dt-->
<table border="0" cellpadding="0" cellspacing="15">
<tbody>
<tr>
<td class="bodycopy">
<p><strong>Image/Signal Processing -problem size</strong><br />The best image size for high performance image processing depends on the particular Intel® IPP function. Generally, Intel IPP image processing functions provide better performance for image sizes larger than <strong>32x32</strong>. Smaller images have overhead for the function call and parameter checking. Highest performance is usually achieved for image sizes <strong>320x240</strong>, <strong>640x480</strong> and larger.<br /><br />It is same for signal processing function, the performance will be better if the length of signal is larger than 32. <br /><strong><br />Small matrix<br /></strong>IPP provide small matrix operation functions in ippm.pdf, while it's sister library Math Kernel Library(MKL) also provide. <br />Unlike MKL, which is usually for engineering and scientific computation, ippm function are optimizated for small matrix. So the perfered size generally ranges from 3x3 to 20x20. <br /><br />For more information on image processing performance, please check the performance data distributed with the Intel IPP package in the t<strong>ools/perfsysdata</strong> directory (the data was removed since 6.1); review the files named <strong>ps_ippi*.csv</strong>. You can also run the Intel IPP Performance test tool ( <strong>perfsys</strong>) to measure the performance of each function on your local system. The <strong>perfsys</strong> tool is present in the t<strong>ools/perfsys</strong> directory. You can more about performance measurement in the document <a href="/en-us/articles/intel-integrated-performance-primitives-intel-ipp-using-the-performance-tool">Using the Performance Tool</a>.</p>
<p>If you have any questions regarding performance, please submit an issue through <a href="https://premier.intel.com/">Intel® Premier Support</a>.</p>
<p><strong>Operating System:</strong></p>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="xs">Windows Server* 2003 Standard x64 Edition, Red Hat* Enterprise Linux 2.1, SUSE* Linux 9.1, SUSE* Linux Enterprise Server 8.0, SUSE* Linux Enterprise Server 9.0, Red Hat* Enterprise Linux 4.0, Windows* XP 64-Bit Edition, Windows* XP Professional, Red Hat* Linux 7.3, Red Hat* Linux 8.0, Windows Server* 2003, Red Hat* Linux 9.0, Red Hat* Enterprise Linux 3.0, SUSE* Linux* 8.2</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td><img width="388" src="http://software.intel.com/file/6324" height="5" /></td>
</tr>
<tr>
<td height="10"> </td>
</tr>
</tbody>
</table> ]]></description>
      <link>http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-image-size-and-high-performance-image-processing</link>
      <pubDate>Wed, 24 Jun 2009 23:17:52 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-image-size-and-high-performance-image-processing#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-image-size-and-high-performance-image-processing</guid>
      <category>Intel® Integrated Performance Primitives Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
  </channel></rss>