<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated on Sun, 12 Feb 2012 07:24:21 -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-c-compiler-for-linux-kb/type/compatibility/feed/" rel="self" type="application/rss+xml" />
    <title>Intel Software Network articles Feed</title>
    <link>http://software.intel.com/en-us/articles/intel-c-compiler-for-linux-kb/type/compatibility/</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>error: more than one instance of function &amp;#34;base::vsnprintf&amp;#34; matches the argument list</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><strong>Reference Number :</strong> DPD200161238<br /><br /><br /><strong>Version : </strong>11.1, 12.0<br /><br /><br /><strong>Product :</strong> Intel® Compiler Professional Edition, Intel® C++ Composer XE 2011<br /><br /><br /><strong>Operating System : </strong>Linux*<br /><br /><br /><strong>Problem Description :</strong> Building Firefox* 3.6 may give the compiler error:<br /><br />
<pre name="code" class="shell:nogutter:nocontrols">../../ipc/chromium/src/base/string_util.h(55): error: more than one instance of function "base::vsnprintf" matches the argument list:
            function "vsnprintf(char *, size_t={unsigned long}, const char *, __va_list_tag *)"
            function "base::vsnprintf(char *, size_t={unsigned long}, const char *, __va_list_tag *)"
            argument types are: (char *, size_t, const char *, va_list)
    int result = vsnprintf(buffer, size, format, arguments);
                 ^</pre>
<br />This is due to an issue with how the compiler looks up functions that take a va_list argument that have overloads in both the global and a separate named namespace.<br /><br /><strong>Resolution Status : </strong>This issue is resolved in the version 12.1 of the compiler available in Intel® C++ Composer XE 2011 update 6 or above.<br /><br /><br /><br /><i>[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers. Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site. ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose. Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]</i></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/error-more-than-one-instance-of-function-basevsnprintf-matches-the-argument-list/</link>
      <pubDate>Thu, 05 Jan 2012 00:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/error-more-than-one-instance-of-function-basevsnprintf-matches-the-argument-list/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/error-more-than-one-instance-of-function-basevsnprintf-matches-the-argument-list/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
    </item>
    <item>
      <title>Pardus Linux: Intel Debugger may fail to start</title>
      <description><![CDATA[ Due to a compatibility problem with the default .gdbinit startup script delivered with Pardus Linux* 2011.2, 64-bit, the Intel® IDB Debugger may fail to start. If the debugger (command line tool 'idbc' or GUI version 'idb') doesn't start correctly, you may add the command line option -nx to bypass the .gdbinit startup script as follows:<br /><br />Running the debugger GUI:<br />$ idb -nx<br /><br />Running the command line debugger:<br />$ idbc -nx<br /><br />This is a known limitation with the Intel® IDB Debugger for Linux* as part of the Intel® Composer XE 2011 Update 8 and will be solved with one of the next update releases of the Composer XE. <br /> ]]></description>
      <link>http://software.intel.com/en-us/articles/pardus-linux-intel-debugger-may-fail-to-start/</link>
      <pubDate>Wed, 04 Jan 2012 15:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/pardus-linux-intel-debugger-may-fail-to-start/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/pardus-linux-intel-debugger-may-fail-to-start/</guid>
      <category>Software Products General</category>
      <category>Tools</category>
      <category>Intel Software Network communities</category>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
    </item>
    <item>
      <title>gcc 4.3 header tr1/unordered_map gives &amp;#34;error: invalid alignment value specified by attribute&amp;#34;</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><strong>Reference Number :</strong> DPD200041913<br /><br /><br /><strong>Version :</strong> 11.1, 12.0<br /><br /><br /><strong>Product :</strong> Intel® Compiler Professional Edition 11.1, Intel® C++ Composer XE 2011<br /><br /><br /><strong>Operating System : </strong>Linux*<br /><br /><br /><strong>Problem Description :</strong> Code like the following:<br /><br />
<pre name="code" class="cpp">#include &lt;tr1/unordered_map&gt;</pre>
<br />When used in a compilation mode with gcc 4.3 or above will give the following error when compiled with the Intel compiler:<br /><br />
<pre name="code" class="shell:nogutter:nocontrols">$ icpc -Wall -c test.cpp
/usr/include/c++/4.3.2/tr1/type_traits(240): error: invalid alignment value specified by attribute
        struct __attribute__((__aligned__((_Align)))) { } __align;
                                          ^

compilation aborted for test.cpp (code 2)
</pre>
<br /><strong>Resolution Status :</strong> This code now compiles with version 12.1 of the compiler, available in Intel® C++ Composer XE 2011 update 6 and above.  If you can't update compilers, you can use the following workaround.  Replace the #include above with the following code:<br /><br />
<pre name="code" class="cpp">#define __aligned__   ignored
#include &lt;tr1/type_traits&gt;
#undef __aligned__</pre>
<br /><br /><br /><br /><i>[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers. Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site. ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose. Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]</i></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/gcc-43-header-tr1unordered_map-gives-error-invalid-alignment-value-specified-by-attribute/</link>
      <pubDate>Wed, 04 Jan 2012 00:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/gcc-43-header-tr1unordered_map-gives-error-invalid-alignment-value-specified-by-attribute/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/gcc-43-header-tr1unordered_map-gives-error-invalid-alignment-value-specified-by-attribute/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
    </item>
    <item>
      <title>Multithreaded debugging issues on Pardus Linux</title>
      <description><![CDATA[ Due to an issue with the default libthread library on Pardus Linux* version 2011.2, 64-bit, the debugger cannot detect which threading library is being used by the debuggee. <br />So when using OpenMP* thread commands<br /><br /> idb info &lt;option&gt; <br /><br />in a debugging session the Intel® IDB Debugger will not provide any OpenMP related thread information. Multithreading debugging however is not affected by this limitation, it's just an issue with displaying the thread info.<br /> ]]></description>
      <link>http://software.intel.com/en-us/articles/multithreaded-debugging-issues-on-pardus-linux/</link>
      <pubDate>Tue, 03 Jan 2012 15:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/multithreaded-debugging-issues-on-pardus-linux/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/multithreaded-debugging-issues-on-pardus-linux/</guid>
      <category>Software Products General</category>
      <category>Intel Software Network communities</category>
      <category>Intel® C++ Compiler for Linux* 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>Some gcc Headers will not Compile due to Use of C++0x Variadic Templates</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><strong>Reference Number :</strong> DPD200027211<br /><br /><br /><strong>Version :</strong> 11.1, Intel® C++ Compiler XE 2011<br /><br /><br /><strong>Product :</strong> Intel® C++ Composer XE for Linux*, Intel® C++ Compiler for Linux* Professional Edition<br /><br /><br /><strong>Operating System :</strong> Linux*<br /><br /><br /><strong>Problem Description : </strong>From gcc 4.3 forward, certain gcc header files contain uses of the C++0x feature variadic templates.  This feature is not yet supported by the Intel® C++ Compiler, so the use of the feature in these header files causes compilation errors with the Intel compiler.  The following is a table of header files and the gcc versions where these header files have issues.<br /><br />
<div id="divHtmlEdMain" >
<table>
<tbody>
<tr>
<td width="125"></td>
<td width="125">gcc 4.3</td>
<td width="125">gcc 4.4</td>
<td width="125">gcc 4.5</td>
</tr>
<tr>
<td width="125">tuple</td>
<td width="125">fails</td>
<td width="125">fails</td>
<td width="125">fails</td>
</tr>
<tr>
<td width="125">thread</td>
<td width="125">†</td>
<td width="125">fails</td>
<td width="125">fails</td>
</tr>
<tr>
<td width="125">mutex</td>
<td width="125">†</td>
<td width="125">fails</td>
<td width="125">fails</td>
</tr>
<tr>
<td width="125">type_traits</td>
<td width="125">passes</td>
<td width="125">fails</td>
<td width="125">fails</td>
</tr>
<tr>
<td width="125">functional</td>
<td width="125">passes</td>
<td width="125">passes</td>
<td width="125">fails</td>
</tr>
<tr>
<td width="125">future</td>
<td width="125">†</td>
<td width="125">†</td>
<td width="125">fails</td>
</tr>
</tbody>
</table>
<br />† Header file does not exist in this version of gcc<br /><br />An example of an error you might see is:<br /><br />
<pre name="code" class="shell:nogutter:nocontrols">error: function is not a template</pre>
<br /><br /><strong>Resolution Status :</strong> These issues has been resolved in the Intel® C++ Composer XE 2011 Update 6.  Note that using update 6 is a significant compiler upgrade from previous updates.<br /><br /><i>[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers. Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site. ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose. Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]</i></div>
</div>
			 ]]></description>
      <link>http://software.intel.com/en-us/articles/some-gcc-headers-will-not-compile-due-to-use-of-c0x-variadic-templates/</link>
      <pubDate>Tue, 06 Sep 2011 00:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/some-gcc-headers-will-not-compile-due-to-use-of-c0x-variadic-templates/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/some-gcc-headers-will-not-compile-due-to-use-of-c0x-variadic-templates/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
    </item>
    <item>
      <title>Don&amp;#39;t use the OpenMP THREADPRIVATE &amp;#39;compatibility&amp;#39; option when everything is compiled by Intel</title>
      <description><![CDATA[ <br />
<div id="art_pre_template"><strong>Introduction :</strong> The Intel C++ and Fortran compilers for Windows* and Linux* provide 'legacy' and 'compatibility' implementations of the OpenMP THREADPRIVATE directive (-Qopenmp-threadprivate:[compat | legacy], -openmp-threadprivate [compat | legacy]).  The 'compat' option should not be used when everything is compiled by Intel compilers. Doing some may result in application crashes or incorrect results. In this case, the 'legacy' option (which is the default) should be used.  The 'compat' option should only be used when some of the objects in an application have been compiled by a compatible Microsoft* or GNU* compiler.<br /><br /><strong>Version :</strong> 11.x, 12.x<br /><br /><br /><strong>Application Notes :</strong> -Qopenmp-threadprivate:legacy (-openmp-threadprivate legacy) is the default when -Qopenmp (-openmp) is specified.  This setting does not provide compatibility with the THREADPRIVATE implementation used by other compilers. -Qopenmp-threadprivate:compat (-openmp-threadprivate compat) can be used when some of the objects in an application have been compiled by a compatible Microsoft* or GNU* compiler.  This setting provides compatibility with the implementation provided by the Microsoft* and GNU* compilers.<br /><br /><br /><strong>Building the Application :</strong> -Qopenmp (-openmp) must be given when using -Qopenmp-threadprivate (-openmp-threadprivate), or the compiler will not recognize the OpenMP THREADPRIVATE directive (warning #161: unrecognized #pragma).<br /><br /><br /><strong>Known Issues or Limitations : </strong>On Mac OS* X systems, 'legacy' is the only type of THREADPRIVATE implementation supported. Option '-openmp-threadprivate' is not recognized by the compiler.<br /><br /><br /><br /></div> ]]></description>
      <link>http://software.intel.com/en-us/articles/dont-use-the-openmp-threadprivate-compatibility-option-when-everything-is-compiled-by-intel/</link>
      <pubDate>Mon, 22 Aug 2011 23:00:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/dont-use-the-openmp-threadprivate-compatibility-option-when-everything-is-compiled-by-intel/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/dont-use-the-openmp-threadprivate-compatibility-option-when-everything-is-compiled-by-intel/</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® Visual Fortran Compiler for Windows* Knowledge Base</category>
    </item>
    <item>
      <title>NumPy User Note</title>
      <description><![CDATA[ <p><b><br />NumPy  Application Note</b><br /><br /><b>Step 1 - Overview</b><br /><br />This guide is intended to help current NumPy users to take advantage of Intel® <a href="http://en.wikipedia.org/wiki/Math_Kernel_Library">Math Kernel Library</a> (Intel® MKL). NumPy automatically maps operations on vectors and matrices to the BLAS and LAPACK functions wherever possible.  Since Intel® MKL supports these de-facto interfaces, NumPy can benefit from MKL optimizations through simple modifications to the NumPy scripts.<br /><br /><a href="http://en.wikipedia.org/wiki/NumPy">NumPy</a> is the fundamental package required for scientific computing with Python. It consists of:</p>
<ul type="disc">
<li>a powerful N-dimensional array object</li>
<li>sophisticated (broadcasting) functions</li>
<li>tools for integrating C/C++ and Fortran code</li>
<li>useful linear algebra, Fourier transform, and random number capabilities.</li>
</ul>
<p>Besides its obvious scientific uses, NumPy can also be used as an efficient multi-dimensional container of generic data.</p>
<p>For more information on NumPy, please visit http://NumPy.scipy.org/<br /><br /><b>Version Information</b><br /><br />This application note was created to help NumPy users to make use of the latest versions of Intel MKL on Linux platforms.</p>
<p>The instructions given in this articles apply to Intel MKL 10.3 and above and Intel Compiler 11.0 and above.<br /><br /> <br /><b>Step 2 - Downloading NumPy Source Code</b><br /><br />The NumPy source code can be downloaded from:</p>
<p>http://NumPy.scipy.org/<br /><br /><b>Prerequisites</b><br /><br />Intel MKL can be obtained from the following options:</p>
<p>Download a FREE evaluation version of the Intel MKL product.<br />Download the FREE non-commercial* version of the Intel MKL product.<br /><br />All of these can be obtained at: <a href="http://www.intel.com/cd/software/products/asmo-na/eng/307757.htm">Intel® Math Kernel Library product web page</a>.<br /><br />Intel® MKL is also bundled with the following products<br /><br /><a href="http://software.intel.com/en-us/articles/intel-parallel-studio-xe/">Intel® Parallel Studio XE 2011</a><br /><a href="http://software.intel.com/en-us/articles/intel-composer-xe/">Intel Parallel Composer XE 2011</a><br /><a href="http://software.intel.com/en-us/articles/intel-cluster-studio/">Intel Cluster Studio 2011</a><br /><br /><b>Step 3 - Configuration</b><br /><br />Use the following commands to <b>extract the NumPy tar files</b> from the downloaded NumPy-x.x.x.tar.gz.</p>
<pre name="code" class="shell">1.	$gunzip numpy-x.x.x.tar.gz 
2.	$tar -xvf numpy-x.x.x.tar </pre>
<p> <br />The above will create a directory named numpy-x.x.x<br /><br />Make sure that C++ and FORTRAN compilers are installed and they are in PATH. Also set LD_LIBRARY_PATH to your compiler (C++ and FORTRAN), and MKL libraries.<br /><br /><b>Step 4 - Building NumPy</b><br /><br />Change directory to numpy-x.x.x<br />Create a site.cfg from the existing one<br /> <br />Edit site.cfg as follows:</p>
<p>Add the following lines to site.cfg in your top level NumPy directory to use Intel® MKL, if you are building on Intel 64 platform:</p>
<pre name="code" class="cpp">[mkl]<br />library_dirs = /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64<br />include_dirs = /opt/intel/composer_xe_2011.sp1.6.233/mkl/include<br />mkl_libs = mkl_rt<br />lapack_libs =</pre>
<p><br /><br />If you are building NumPy for 32 bit, please add as the following</p>
<pre name="code" class="cpp">[mkl]
library_dirs = /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/ia32<br />include_dirs = /opt/intel/composer_xe_2011_sp1.6.233/mkl/include
mkl_libs = mkl_rt<br />lapack_libs = </pre>
<p>Modify cc_exe in numpy/distutils/intelccompiler.py to be something like:</p>
<pre name="code" class="cpp">self.cc_exe = 'icc -O3 -g -fPIC -fp-model strict -fomit-frame-pointer -openmp -xhost'

</pre>
<p>Here we use, -O3, optimizations for speed and enables more aggressive loop transformations such as Fusion, Block-Unroll-and-Jam, and collapsing IF statements, -openmp for OpenMP threading and -xhost option tells the compiler to generate instructions for the highest instruction set available on the compilation host processor. If you are using the ILP64 interface, please add -DMKL_ILP64 compiler flag.</p>
<p>Run icc --help for more information on processor-specific options, and refer Intel Compiler documentation for more details on the various compiler flags.</p>
<p>Compile and install NumPy with the Intel compiler: (on 64-bit platforms replace "intel" with "intelem")</p>
<pre name="code" class="cpp">python setup.py config --compiler=intel build_clib --compiler=intel build_ext --compiler=intel install

</pre>
<p><br />If you build NumPY for Intel64 bit platforms:</p>
<pre name="code" class="shell">$export LD_LIBRARY_PATH=/opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64:/opt/intel/composer_xe_2011_sp1.6.233/compiler/lib/intel64:$LD_LIBRARY_PATH

</pre>
<p>If you build NumPY for ia32 bit platforms:</p>
<pre name="code" class="shell">$export LD_LIBRARY_PATH=/opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/ia32:/opt/intel/composer_xe_2011_sp1.6.233/compiler/lib/ia32:$LD_LIBRARY_PATH

</pre>
<p>It is possible that LD_LIBRARY_PATH causes a problem, if you have installed MKL and Composer XE in other directories than the standard ones. The only solution I've found that always works is to build Python, NumPy and SciPy inside an environment where you've set the LD_RUN_PATH variable, e.g:</p>
<pre name="code" class="cpp">$export LD_RUN_PATH=~/opt/lib:~/intel/composer_xe_2011_sp1.6.233/compiler/lib:~/intel/composer_xe_2011_sp1.6.233/mkl/lib/ia32
</pre>
<p><br /><br /><strong>Note:</strong> We recommend users to use arrays with 'C' ordering style which is row-major, which is default than Fortran Style which is column-major, and this is because NumPy uses CBLAS and also to get better performance.<br /><br /><strong>Appendex A: Example:</strong> <br /><br />Please see below an example Python script for matrix multiplication that you can use Numply installed with Intel MKL which has been provided for illustration purpose.</p>
<pre name="code" class="python">import numpy as np
import time

N = 6000
M = 10000

k_list = [64, 80, 96, 104, 112, 120, 128, 144, 160, 176, 192, 200, 208, 224, 240, 256, 384]

def get_gflops(M, N, K):
	return M*N*(2.0*K-1.0) / 1000**3

np.show_config()

for K in k_list:
	a = np.array(np.random.random((M, N)), dtype=np.double, order='C', copy=False)
	b = np.array(np.random.random((N, K)), dtype=np.double, order='C', copy=False)
	A = np.matrix(a, dtype=np.double, copy=False)
	B = np.matrix(b, dtype=np.double, copy=False)

	C = A*B

	start = time.time()

	C = A*B
	C = A*B
	C = A*B
	C = A*B
	C = A*B

	end = time.time()

	tm = (end-start) / 5.0

	print "{0:4}, {1:9.7}, {2:9.7}".format(K, tm, get_gflops(M, N, K) / tm)
</pre>
<br />
<p><strong>Appendix B: Performance Comparison<br /><br /><br /></strong></p>
<p ><br /><img height="500" width="530" src="http://software.intel.com/file/40584" alt="numpy-matrix-multiply.jpg" title="numpy-matrix-multiply.jpg" /><br /><br /><br /><br /><img height="500" width="530" src="http://software.intel.com/file/41176" alt="numpy_mkl_svd_comparison.jpg" title="numpy_mkl_svd_comparison.jpg" /><br /><br /><img height="500" width="530" src="http://software.intel.com/file/41175" alt="numpy_mkl_lu_comparison.jpg" title="numpy_mkl_lu_comparison.jpg" /> <br /><br /><img height="500" width="530" src="http://software.intel.com/file/41174" alt="numpy_mkl_cholesky_comparison.jpg" title="numpy_mkl_cholesky_comparison.jpg" /><br /><br />Please click <a href="http://software.intel.comjavascript:void(0)" onclick="ndownload('http://software.intel.com/file/41177')"><strong>Examples.py</strong></a> to download the examples for LU, Cholesky and SVD.<br /><br /><br /><br /> <b></b><a></a></p> ]]></description>
      <link>http://software.intel.com/en-us/articles/numpy-user-note/</link>
      <pubDate>Tue, 16 Aug 2011 10:30:00 -0700</pubDate>
      <comments>http://software.intel.com/en-us/articles/numpy-user-note/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/numpy-user-note/</guid>
      <category>Intel® C++ Compiler for Linux* Knowledge Base</category>
      <category>Intel® C++ Compiler for Windows* Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Linux* Knowledge Base</category>
      <category>Intel® Cluster Toolkit for Windows* Knowledge Base</category>
      <category>Intel® Fortran Compiler for Linux* Knowledge Base</category>
      <category>Intel® Math Kernel Library Knowledge Base</category>
    </item>
    <item>
      <title>C++0x Features Supported by Intel(R) C++ Compiler</title>
      <description><![CDATA[ <p><br />Starting in 11.0 the Intel(R) C++ Compiler has supported some of the C++0x features. With the latest release of Intel C++ Composer XE for Windows, Linux* and Mac OS* X, and the Intel Parallel Composer 2011, more C++0x features are supported. 
<table cellpadding="0" cellspacing="0" border="1">
<tbody>
<tr >
<td width="320" valign="bottom"><b>C++0x Core Language Features</b></td>
<td width="105" valign="top"><b>Version 11.1</b></td>
<td width="105" valign="top"><b>Version 12.0</b></td>
<td width="105" valign="top"><b>Version 12.0 Update 6</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Rvalue references v2</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Rvalue references for *this</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>No</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Initialization of class objects by rvalues</td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">static_assert</td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">auto</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Multi-declarator auto</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Removing old auto</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Trailing return types</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Lambdas V1.0</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">decltype</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Right angle brackets</td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Extern templates</td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">nullptr</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Strongly typed enums</td>
<td width="105" valign="top"><b>Partial</b></td>
<td width="105" valign="top"><b>Partial</b></td>
<td width="105" valign="top"><b>Partial</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Forward declared enums</td>
<td width="105" valign="top"><b>Partial</b></td>
<td width="105" valign="top"><b>Partial</b></td>
<td width="105" valign="top"><b>Partial</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Extended friend declarations</td>
<td width="105" valign="top"><b>Partial</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Local and unnamed types as template arguments</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">deleted and defaulted functions</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Allow typename outside of templates</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">variadic templates</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">New-style SFINAE (N2634)</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">alias templates</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Late-specified return types</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Default template arguments for function templates</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Standard attributes (N2761)</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">char16_t/char32_t types</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Partial on Windows; <br />Yes on Linux &amp; Mac OS X</b></td>
</tr>
<tr >
<td width="320" valign="bottom"><b>C++0x Core Language Features: Concurrency</b></td>
<td width="105" valign="top"></td>
<td width="105" valign="top"></td>
<td width="105" valign="top"></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">exception_ptr</td>
<td width="105" valign="top"><b>No</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">Thread-local storage</td>
<td width="105" valign="top"><b>Partial</b></td>
<td width="105" valign="top"><b>Partial</b></td>
<td width="105" valign="top"><b>Partial</b></td>
</tr>
<tr >
<td width="320" valign="bottom"><b>C++0x Core Language Features: C99</b></td>
<td width="105" valign="top"></td>
<td width="105" valign="top"></td>
<td width="105" valign="top"></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">__func__</td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">C99 preprocessor</td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
<tr height="20">
<td width="320" valign="bottom">long long</td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
<td width="105" valign="top"><b>Yes</b></td>
</tr>
</tbody>
</table>
<br />On Windows environment when using Intel C++ compiler with Visual Studio 2010*, the C++0x features supported by Visual C++ 2010 are enabled by default. Use "/Qstd=c++0x" to turn on the support for all other cases. <br />On Linux or Mac OS X environment use "-std=c++0x". <br /><br />Please read the documentation for detail information under /Qstd (-std on Linux* or Mac OS* X) option.<br /><br />See <a href="http://software.intel.com/en-us/articles/c99-support-in-intelr-c-compiler/">C99 Support in Intel(R) C++ Compiler</a> article for supported C99 features.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/</link>
      <pubDate>Tue, 07 Dec 2010 00:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/</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® Parallel Composer Knowledge Base</category>
    </item>
    <item>
      <title>C99 Support in Intel(R) C++ Compiler</title>
      <description><![CDATA[ <p>Most of the C99 features are supported by Intel(R) C++ Composer XE for Windows*, Linux* and Mac OS* X, and Intel Parallel Composer 2011. <br /><br /><strong>The option to turn on C99 support:  </strong></p>
<ul>
<li><strong>/Qstd=c99</strong> on Windows </li>
<li><strong>-std=c99</strong> on Linux and Mac OS X</li>
<li>The default is <strong>C89 </strong>instead</li>
</ul>
<p><strong>The following C99 features are supported:</strong></p>
<ul>
<li>restricted pointers (restrict keyword)</li>
<li>variable-length Arrays</li>
<li>flexible array members</li>
<li>complex number support (_Complex keyword)</li>
<li>hexadecimal floating-point constants</li>
<li>compound literals</li>
<li>designated initializers</li>
<li>mixed declarations and code</li>
<li>macros with a variable number of arguments</li>
<li>inline functions (inline keyword)</li>
<li>boolean type (_Bool keyword)</li>
</ul>
<p><strong>The following features are not supported: </strong></p>
<ul>
<li>long double (128-bit representations)</li>
</ul>
<p>See <a href="http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/">C++0x Features Supported by Intel(R) C++ Compiler</a> for supported C++0x features.</p> ]]></description>
      <link>http://software.intel.com/en-us/articles/c99-support-in-intelr-c-compiler/</link>
      <pubDate>Wed, 01 Dec 2010 00:00:00 -0800</pubDate>
      <comments>http://software.intel.com/en-us/articles/c99-support-in-intelr-c-compiler/#comments</comments>
      <guid isPermaLink="true">http://software.intel.com/en-us/articles/c99-support-in-intelr-c-compiler/</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® Parallel Composer Knowledge Base</category>
    </item>
  </channel></rss>
