<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic LAPACK not multithreading in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/LAPACK-not-multithreading/m-p/827187#M5182</link>
    <description>I am calling the LAPACK routine sgesvd_ from C++ code under Windows Vista. I'm using MKL installed with Intel Fortran compiler version 11.0.074. I statically link to MKL libraries mkl_core.lib, mkl_intel_ilp64.lib, mkl_intel_thread.lib and either libguide.lib or libiomp5mt.lib.&lt;BR /&gt;&lt;BR /&gt;In the MKL User's Guide, Managing Performance and Memory, I find this:&lt;BR /&gt;&lt;BR /&gt;Note that a number of other LAPACK routines, which are based on threaded LAPACK or&lt;BR /&gt;BLAS routines, make effective use of parallelism: *gesv, *posv, *gels, *gesvd,&lt;BR /&gt;*syev, *heev, etc.&lt;BR /&gt;&lt;BR /&gt;I would expect, then, to be able to see multiple cores running when I call sgesvd_, but I don't. Is there some gotcha?&lt;BR /&gt;&lt;BR /&gt;Our application uses Windows OS threading in places, but the particular place where sgesvd_ is called is running from the main thread and there are no other active computational threads.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Any advice would be gratefully appreciated!&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;John Weeks&lt;BR /&gt;WaveMetrics, Inc.</description>
    <pubDate>Mon, 03 May 2010 23:41:30 GMT</pubDate>
    <dc:creator>jd_weeks</dc:creator>
    <dc:date>2010-05-03T23:41:30Z</dc:date>
    <item>
      <title>LAPACK not multithreading</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/LAPACK-not-multithreading/m-p/827187#M5182</link>
      <description>I am calling the LAPACK routine sgesvd_ from C++ code under Windows Vista. I'm using MKL installed with Intel Fortran compiler version 11.0.074. I statically link to MKL libraries mkl_core.lib, mkl_intel_ilp64.lib, mkl_intel_thread.lib and either libguide.lib or libiomp5mt.lib.&lt;BR /&gt;&lt;BR /&gt;In the MKL User's Guide, Managing Performance and Memory, I find this:&lt;BR /&gt;&lt;BR /&gt;Note that a number of other LAPACK routines, which are based on threaded LAPACK or&lt;BR /&gt;BLAS routines, make effective use of parallelism: *gesv, *posv, *gels, *gesvd,&lt;BR /&gt;*syev, *heev, etc.&lt;BR /&gt;&lt;BR /&gt;I would expect, then, to be able to see multiple cores running when I call sgesvd_, but I don't. Is there some gotcha?&lt;BR /&gt;&lt;BR /&gt;Our application uses Windows OS threading in places, but the particular place where sgesvd_ is called is running from the main thread and there are no other active computational threads.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Any advice would be gratefully appreciated!&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;John Weeks&lt;BR /&gt;WaveMetrics, Inc.</description>
      <pubDate>Mon, 03 May 2010 23:41:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/LAPACK-not-multithreading/m-p/827187#M5182</guid>
      <dc:creator>jd_weeks</dc:creator>
      <dc:date>2010-05-03T23:41:30Z</dc:date>
    </item>
    <item>
      <title>LAPACK not multithreading</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/LAPACK-not-multithreading/m-p/827188#M5183</link>
      <description>&lt;P&gt;Hi John, What is the size of the matrix with which you work?&lt;/P&gt;&lt;P&gt;--Gennady&lt;/P&gt;</description>
      <pubDate>Tue, 04 May 2010 09:50:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/LAPACK-not-multithreading/m-p/827188#M5183</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2010-05-04T09:50:16Z</dc:date>
    </item>
    <item>
      <title>LAPACK not multithreading</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/LAPACK-not-multithreading/m-p/827189#M5184</link>
      <description>Very large- 11025x11025. It sits for a very long time with no new threads created by sgesvd.&lt;BR /&gt;&lt;BR /&gt;-John Weeks</description>
      <pubDate>Tue, 04 May 2010 15:13:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/LAPACK-not-multithreading/m-p/827189#M5184</guid>
      <dc:creator>jd_weeks</dc:creator>
      <dc:date>2010-05-04T15:13:05Z</dc:date>
    </item>
    <item>
      <title>LAPACK not multithreading</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/LAPACK-not-multithreading/m-p/827190#M5185</link>
      <description>&lt;P&gt;Hi John,&lt;BR /&gt;&lt;BR /&gt;This is abigenought size for use of parallism.&lt;BR /&gt;If you don't see that MKL creates threads, this means that for some reasonmkl runs sequential code.For example it could be calling the function from OpenMPparallel region like below expecting nested parallelism:&lt;BR /&gt;#pragma omp parallel {&lt;BR /&gt; ...&lt;BR /&gt; #pragma omp single {&lt;BR /&gt; sgesvd(...);&lt;BR /&gt; }&lt;BR /&gt;}&lt;BR /&gt;Workaround: use mkl_set_num_threads(the_number_of_threads_desired) andmkl_set_dynamic(false).Some details are&lt;A target="_blank" href="http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-intel-mkl-100-threading/"&gt;here&lt;/A&gt;.&lt;BR /&gt;&lt;BR /&gt;You also could diagnose maximal amount of threads for MKL by calling mkl_get_max_threads() befor your MKL call.&lt;BR /&gt;&lt;BR /&gt;Other reasons for runing sequential code branch if threaded library is linked and MKL_DYNAMIC=true(default) could be: single core machine(even with HT), too small problems size(not the case and problem dependent), environment variables OMP_NUM_THREADS=1 orMKL_NUM_THREADS=1.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Alexander.&lt;/P&gt;</description>
      <pubDate>Wed, 05 May 2010 10:10:49 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/LAPACK-not-multithreading/m-p/827190#M5185</guid>
      <dc:creator>Alexander_K_Intel3</dc:creator>
      <dc:date>2010-05-05T10:10:49Z</dc:date>
    </item>
    <item>
      <title>LAPACK not multithreading</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/LAPACK-not-multithreading/m-p/827191#M5186</link>
      <description>Thank you, Alexander. It turns out to be a multi-stage process. Using somewhat smaller matrices so that the whole thing takes less time, I now see the sgesvd spends some preliminary time in an unthreaded stage. Later it goes into a threaded portion and spends most of its time with all cores occupied.&lt;BR /&gt;&lt;BR /&gt;The matrix I was testing (provided by a customer) is so big that the initial stage takes a very long time- like more than an hour!&lt;BR /&gt;&lt;BR /&gt;-John</description>
      <pubDate>Wed, 05 May 2010 15:31:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/LAPACK-not-multithreading/m-p/827191#M5186</guid>
      <dc:creator>jd_weeks</dc:creator>
      <dc:date>2010-05-05T15:31:44Z</dc:date>
    </item>
  </channel>
</rss>

