Dear all,<br><br>I'm at my wits end.  I've followed Intel's own <a href="http://software.intel.com/en-us/articles/numpyscipy-with-intel-mkl" target="_blank">instructions</a> on how to compile Numpy with Intel MKL.  Everything compiled and linked fine and I've installed it locally in my user folder...There is one nasty problem.  When one calls the numpy library to do some computation, it does not use all of the available threads.  I have 8 "cores" on my machine and it only uses 4 of them.  The MKL_NUM_THREADS environmental variable can be set to tune the number of threads but setting it to 8 does not change anything.  Indeed, setting it to 3 does limit the threads to 3....What is going on?<br>
<div class="gmail_quote">
<br>As a comparison, the numpy (version 1.4.1, installed from yum, which uses BLAS+ATLAS) uses all 8 threads.  I do not get this.<br><br>You can run this test program<br><br>python -mtimeit -s'import numpy as np; a = np.random.randn(1e3,1e3)' 'np.dot(a, a)'<br>

<br>There is one saving grace, the local numpy built with MKL is much faster than the system's numpy.<br><br>I hope someone can help me.  Searching the internet has been fruitless.<br>
<br>Best,<br>Quyen<br><br>My site.cfg for numpy (1.7.0)<br>[mkl]<br>library_dirs = /opt/intel/mkl/lib/intel64<br>include_dirs = /opt/intel/mkl/include<br>mkl_libs = mkl_rt<br>lapack_libs =<br><br>I've edited line 37 of numpy/distutils/intelcompiler.py<br>

self.cc_exe = 'icc -O3 -fPIC -fp-model strict -fomit-frame-pointer -openmp -parallel -DMKL_ILP64'<br><br>Also line 54 of numpy/distutils/fcompiler/intel.py<br>return ['-i8 -xhost -openmp -fp-model strict']<br>

<br>My .bash_profile also contains the lines:<br>source /opt/intel/bin/compilervars.sh intel64<br>source /opt/intel/mkl/bin/mklvars.sh intel64<br><br>The above is needed to set the LD_LIBRARY_PATH so that Python can source the intel dynamic library when numpy is called.<br>

</div><br>