<?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 MKL and multithreaded FFTs in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-and-multithreaded-FFTs/m-p/880679#M9531</link>
    <description>Greetings all,&lt;BR /&gt; I've got a couple of questions regarding multithreaded code doing FFTs from the IMKL. Our package&lt;BR /&gt;traditionally has been single threaded, but there is some growing interest in making it multithreaded. It looked like the examples given in the Reference Manual for IMKL V10 (I've got an eval license right now) assume the use&lt;BR /&gt;of the Intel Compilers. We also use gcc/g++, so we can't *require* features that aren't supported in both compilers.&lt;BR /&gt; Would the following scenario be 'safe', both with IMKL V10 as well as V9 or V8 (assume code is C++):&lt;BR /&gt;&lt;BR /&gt;singleton class responsible for managing all descriptors, with mutex lock to prevent concurrent access to&lt;BR /&gt; the list of descriptors&lt;BR /&gt;all threads call this class to check in or out a descriptor. If an 'idle' descriptor does not exist that matches the&lt;BR /&gt; request, one is created/commited. A descriptor would only be one-way, either forward or backward.&lt;BR /&gt;after use, the descriptor is checked-in and the reference counter decremented&lt;BR /&gt;descriptors would be freed at program exit, or by an explicit call to a release method.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thanks...&lt;BR /&gt;&lt;BR /&gt;Rob&lt;BR /&gt;&lt;BR /&gt;</description>
    <pubDate>Thu, 29 May 2008 19:43:33 GMT</pubDate>
    <dc:creator>rarob</dc:creator>
    <dc:date>2008-05-29T19:43:33Z</dc:date>
    <item>
      <title>MKL and multithreaded FFTs</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-and-multithreaded-FFTs/m-p/880679#M9531</link>
      <description>Greetings all,&lt;BR /&gt; I've got a couple of questions regarding multithreaded code doing FFTs from the IMKL. Our package&lt;BR /&gt;traditionally has been single threaded, but there is some growing interest in making it multithreaded. It looked like the examples given in the Reference Manual for IMKL V10 (I've got an eval license right now) assume the use&lt;BR /&gt;of the Intel Compilers. We also use gcc/g++, so we can't *require* features that aren't supported in both compilers.&lt;BR /&gt; Would the following scenario be 'safe', both with IMKL V10 as well as V9 or V8 (assume code is C++):&lt;BR /&gt;&lt;BR /&gt;singleton class responsible for managing all descriptors, with mutex lock to prevent concurrent access to&lt;BR /&gt; the list of descriptors&lt;BR /&gt;all threads call this class to check in or out a descriptor. If an 'idle' descriptor does not exist that matches the&lt;BR /&gt; request, one is created/commited. A descriptor would only be one-way, either forward or backward.&lt;BR /&gt;after use, the descriptor is checked-in and the reference counter decremented&lt;BR /&gt;descriptors would be freed at program exit, or by an explicit call to a release method.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thanks...&lt;BR /&gt;&lt;BR /&gt;Rob&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 29 May 2008 19:43:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-and-multithreaded-FFTs/m-p/880679#M9531</guid>
      <dc:creator>rarob</dc:creator>
      <dc:date>2008-05-29T19:43:33Z</dc:date>
    </item>
    <item>
      <title>Re: MKL and multithreaded FFTs</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-and-multithreaded-FFTs/m-p/880680#M9532</link>
      <description>&lt;FONT color="#800000" size="2"&gt;
&lt;P&gt;Hi Rob,&lt;/P&gt;
&lt;P&gt;Youseem to use DFT descriptors in your own threads, unclear whether you want DFT be threaded internally or not. If you want DFT be sequential within your threads (i.e. no nested parallelism), you have the followingoptions:use mkl_sequential threading layer, set MKL_NUM_THREADS=1 or OMP_NUM_THREADS=1 in the environment,set MKL_DOMAIN_NUM_THREADS=FFT:1 in the environment,call MKL_Domain_Set_Max_Threads(MKL_FFT,1) before creating a descriptor,set OpenMP max number of threads to 1 during descriptor creation (set before create, reset after commit). The latter option should work on MKL 8.+, while the others appeared later. &lt;/P&gt;
&lt;P&gt;If, however,you want to use one descriptor in different threads simultaneously, you should be careful: you should know the number of sharing threads beforehand and use DFTI_NUM_USER_THREADS accordingly for the shared descriptor. &lt;/P&gt;
&lt;P&gt;If you use mkl_sequential, then youwill not be dependent on Intel OpenMP runtime library.&lt;/P&gt;
&lt;P&gt;Dima&lt;/P&gt;&lt;/FONT&gt;</description>
      <pubDate>Mon, 02 Jun 2008 17:56:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-and-multithreaded-FFTs/m-p/880680#M9532</guid>
      <dc:creator>Dmitry_B_Intel</dc:creator>
      <dc:date>2008-06-02T17:56:48Z</dc:date>
    </item>
  </channel>
</rss>

