<?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 Re: Re:why does dfeast_scsrev only use half the available computational power? in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1602086#M36156</link>
    <description>&lt;P&gt;In the tests, the threading behavior of dfeast_scsrev() is expected. By default, the number of OpenMP threads is equal to the number of real cores.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;However, we find that mkl_sparse_d_ev(fpm[2]=2) tries to use NUM_REAL_CORES*2 threads (by default) when hyperthreading is on, and mkl_set_num_threads() fails. After further investigation, we observe that even though NUM_REAL_CORES*2 threads are used by this function, only m of them are actually working, where m is number we put in mkl_set_num_threads(). The rest of the threads are just spinning. We are working on this issue.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For mkl_set_dynamic(), by default it is turned on (mkl_set_dynamic(1)). If it is set to false, mkl_set_dynamic(0), oneMKL functions, not only mkl_sparse_d_ev and dfeast_scsrev, can use NUM_REAL_CORES*2 threads if we do "mkl_set_num_threads(NUM_REAL_CORES*2)". Though it is generally not recommended to do so. So the statement should be "...so that mkl_sparse_d_ev (fpm[2]=2) and dfeast_scsrev will only use NUM_REAL_CORES*2 threads IF AND ONLY IF mkl_set_dynamic(&lt;STRONG&gt;0&lt;/STRONG&gt;) and &lt;STRONG&gt;mkl_set_num_threads(NUM_REAL_CORES*2)&lt;/STRONG&gt;."&lt;/P&gt;
&lt;P&gt;Thank you for bringing up this issue!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 29 May 2024 20:53:29 GMT</pubDate>
    <dc:creator>Fengrui</dc:creator>
    <dc:date>2024-05-29T20:53:29Z</dc:date>
    <item>
      <title>why does dfeast_scsrev only use half the available computational power?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1586060#M35983</link>
      <description>&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/feast-threading/m-p/968656/highlight/true#M16366" target="_self"&gt;i asked this question ten years ago&lt;/A&gt; and i was told at that time it was due to something with the dual processor configuration and non-uniform memory architecture (NUMA).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;however this is wrong, as i've been abusing (lol) my 2020 wintel macbook pro 16' i9 9980HX and it is still showing 49% when running scsrev.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;this means there is something simple or trivial on your guys' (excuse my preference for convenience in the off-chance there are ladies on the team) end.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Apr 2024 23:32:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1586060#M35983</guid>
      <dc:creator>Gagan</dc:creator>
      <dc:date>2024-04-03T23:32:24Z</dc:date>
    </item>
    <item>
      <title>Re: why does dfeast_scsrev only use half the available computational power?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1586061#M35984</link>
      <description>&lt;P&gt;i'm so good lol, i feel bad though because it's like i'm cracking a whip on the team's back &lt;LI-EMOJI id="lia_face-with-tongue" title=":face_with_tongue:"&gt;&lt;/LI-EMOJI&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i wonder if i got the attention of the team's top dogg gennady--i know you watchin' fam! lol&lt;/P&gt;</description>
      <pubDate>Wed, 03 Apr 2024 23:33:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1586061#M35984</guid>
      <dc:creator>Gagan</dc:creator>
      <dc:date>2024-04-03T23:33:36Z</dc:date>
    </item>
    <item>
      <title>Re:why does dfeast_scsrev only use half the available computational power?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1591964#M36063</link>
      <description>&lt;P&gt;Hello! &lt;/P&gt;&lt;P&gt;I tried the in-package example dfeast_sparse.c with some modifications. I kept the pattern of the matrix unchanged, but made it much larger with N=10000 to have a stable run for ~10 seconds. On a dual-socket Intel(R) Xeon(R) Platinum 8480+ node (112 physical cores in total, Ubuntu 22.04.1 LTS for OS), I observed CPU usages remained ~11200% (by "top" command) for ~ 10 seconds. The oneMKL version used was 2024.1.&lt;/P&gt;&lt;P&gt;The subspace size looks relatively small. How long does it take to complete the run in your case? Also I'm not an expert of istat you mentioned in the old post. The difference could also come from the measuring tools.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Fengrui&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 23 Apr 2024 18:51:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1591964#M36063</guid>
      <dc:creator>Fengrui</dc:creator>
      <dc:date>2024-04-23T18:51:02Z</dc:date>
    </item>
    <item>
      <title>Re: Re:why does dfeast_scsrev only use half the available computational power?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1596933#M36118</link>
      <description>&lt;P&gt;fengrui i was hoping you can confirm you have replicated the observed behaviour (as discussed in private), and please elaborate on the future solution.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;as i understand it, you will make it so that mkl_sparse_d_ev (fpm[2]=2) and dfeast_scsrev will only use NUM_REAL_CORES*2 threads IF AND ONLY IF mkl_set_dynamic(1).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;is this correct?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;</description>
      <pubDate>Sat, 11 May 2024 17:22:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1596933#M36118</guid>
      <dc:creator>Gagan</dc:creator>
      <dc:date>2024-05-11T17:22:17Z</dc:date>
    </item>
    <item>
      <title>Re: Re:why does dfeast_scsrev only use half the available computational power?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1602086#M36156</link>
      <description>&lt;P&gt;In the tests, the threading behavior of dfeast_scsrev() is expected. By default, the number of OpenMP threads is equal to the number of real cores.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;However, we find that mkl_sparse_d_ev(fpm[2]=2) tries to use NUM_REAL_CORES*2 threads (by default) when hyperthreading is on, and mkl_set_num_threads() fails. After further investigation, we observe that even though NUM_REAL_CORES*2 threads are used by this function, only m of them are actually working, where m is number we put in mkl_set_num_threads(). The rest of the threads are just spinning. We are working on this issue.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For mkl_set_dynamic(), by default it is turned on (mkl_set_dynamic(1)). If it is set to false, mkl_set_dynamic(0), oneMKL functions, not only mkl_sparse_d_ev and dfeast_scsrev, can use NUM_REAL_CORES*2 threads if we do "mkl_set_num_threads(NUM_REAL_CORES*2)". Though it is generally not recommended to do so. So the statement should be "...so that mkl_sparse_d_ev (fpm[2]=2) and dfeast_scsrev will only use NUM_REAL_CORES*2 threads IF AND ONLY IF mkl_set_dynamic(&lt;STRONG&gt;0&lt;/STRONG&gt;) and &lt;STRONG&gt;mkl_set_num_threads(NUM_REAL_CORES*2)&lt;/STRONG&gt;."&lt;/P&gt;
&lt;P&gt;Thank you for bringing up this issue!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 29 May 2024 20:53:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1602086#M36156</guid>
      <dc:creator>Fengrui</dc:creator>
      <dc:date>2024-05-29T20:53:29Z</dc:date>
    </item>
    <item>
      <title>Re: Re:why does dfeast_scsrev only use half the available computational power?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1602882#M36164</link>
      <description>&lt;P&gt;hi fengrui,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for getting back to me.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i didn't realise that the earlier issue of mkl_set_dynamic(0) and mkl_set_num_threads(NUM_REAL_CORES*2) had been fixed, as when i tried it a decade ago it did not fix the issue (i believe top dogg gennady made the recommendation at the time).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;it's good to know that old issue was fixed, and that the inconsistent behaviour between fpm[2]=1 and fpm[2]=2 for mkl_sparse_d_ev is a consequence of the krylov solver using twice the number of threads it is supposed to.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;looking forward to the release with this fix, as i suspect it will increase the krylov solver's performance even further.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 31 May 2024 20:46:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/why-does-dfeast-scsrev-only-use-half-the-available-computational/m-p/1602882#M36164</guid>
      <dc:creator>Gagan</dc:creator>
      <dc:date>2024-05-31T20:46:20Z</dc:date>
    </item>
  </channel>
</rss>

