<?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 DFT interface error when call 1D TT  in parallel loop in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794327#M2537</link>
    <description>Hi, see the attachment.&lt;BR /&gt;It's a simple test program new wrote, and it's about parallel calling TT staggered cosine routines. You can compile it with correct link to MKL library.&lt;BR /&gt;My environment is Intel Fortran Compiler 10.1, CMKL 9.0, the CPU is (XeonE5450/5430)*2, andjob manager isCHESS on Linux.&lt;BR /&gt;For the test program, I found the error was not the same as I'm found before. For example, if ipar(9) is set to 8, if I submit my job with 1 or 2 or 3 threads, it runs ok and the results is correct. But if 4 or more thread are used, the results is not correct. But I supposed to have maximum of 8 threads to use for my CPU.&lt;BR /&gt;Can you give a correct example to parallel call TT routines?&lt;BR /&gt;Best regards!&lt;BR /&gt; Changlei</description>
    <pubDate>Sun, 07 Nov 2010 06:25:18 GMT</pubDate>
    <dc:creator>Chang_Lei</dc:creator>
    <dc:date>2010-11-07T06:25:18Z</dc:date>
    <item>
      <title>DFT interface error when call 1D TT  in parallel loop</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794322#M2532</link>
      <description>&lt;P&gt;As the title, detailed codesare as follows:&lt;BR /&gt;" &lt;BR /&gt; &lt;EM&gt;use mkl_dfti&lt;BR /&gt; use mkl_trig_transforms&lt;BR /&gt; !define variables&lt;BR /&gt; double precision ff(1:Nz+1,1:Nr)&lt;BR /&gt; integer ir, ipar(128),tt_type&lt;BR /&gt; double precision dpar(3*nz/2+1)&lt;BR /&gt; type(dfti_descriptor), pointer :: handle&lt;BR /&gt; .............&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;!init the variables&lt;BR /&gt; tt_type=2&lt;BR /&gt; ff(Nz+1,:)=0.d0&lt;BR /&gt; .........&lt;BR /&gt; CALL D_INIT_TRIG_TRANSFORM(nz,tt_type,ipar,dpar,ir)&lt;BR /&gt; CALL D_COMMIT_TRIG_TRANSFORM(ff(:,1),handle,ipar,dpar,ir)&lt;BR /&gt; !parallel loop call TT transform routines&lt;BR /&gt; !$omp parallel do private(i,handle,ipar,dpar,ir)&lt;BR /&gt; do i=1,nr&lt;BR /&gt; CALL D_BACKWARD_TRIG_TRANSFORM(ff(:,i),handle,ipar,dpar,ir)&lt;BR /&gt; if (ir.ne.0) then &lt;BR /&gt; write(*,*) "TT transform error number:",ir&lt;BR /&gt; stop&lt;BR /&gt; end if&lt;BR /&gt;&lt;/EM&gt; &lt;EM&gt;enddo&lt;BR /&gt;.....&lt;BR /&gt; CALL FREE_TRIG_TRANSFORM(handle,ipar,ir)&lt;/EM&gt; " &lt;BR /&gt;&lt;BR /&gt;When compile with -openmp option and run the program, DFT interface error is found because it gives " "TT transform error number: -1000". But if not compile with -openmp option, it runs ok.&lt;BR /&gt;If I put the commit routine in the parallel do region, it also give error information, the error number is -100.&lt;BR /&gt;The omp_threads number ipar(9) is not altered.&lt;BR /&gt;I have tried to declare ffprivate variable in OpenMP clause, but the same problem happened.&lt;BR /&gt;Anyone can give help is greatly appreciated.&lt;BR /&gt; Changlei&lt;/P&gt;</description>
      <pubDate>Thu, 04 Nov 2010 09:03:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794322#M2532</guid>
      <dc:creator>Chang_Lei</dc:creator>
      <dc:date>2010-11-04T09:03:39Z</dc:date>
    </item>
    <item>
      <title>DFT interface error when call 1D TT  in parallel loop</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794323#M2533</link>
      <description>Hi,&lt;DIV&gt;&lt;DIV&gt;Firstly, if you set&lt;EM&gt;handle,ipar,dpar,ir &lt;/EM&gt;as private and not initialized them for each thread TT library wouldn't work correctly, so change them on shared. And secondary, set ipar[9] as maximum number of threads before commit step (more detailed could be found in Intel MKL Reference Manual, chapter 13)&lt;/DIV&gt;&lt;DIV&gt;With best regards,&lt;/DIV&gt;&lt;DIV&gt;Alexander Kalinkin &lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 05 Nov 2010 04:09:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794323#M2533</guid>
      <dc:creator>Alexander_K_Intel2</dc:creator>
      <dc:date>2010-11-05T04:09:17Z</dc:date>
    </item>
    <item>
      <title>DFT interface error when call 1D TT  in parallel loop</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794324#M2534</link>
      <description>&lt;P&gt;Hi Alexander,&lt;BR /&gt;I followed your suggestions and changed &lt;EM&gt;handle,ipar,dpar,ir&lt;/EM&gt; as shared variables, set maximumthreads numbers,then no DFT interface error is found.But there are still something incorrect. That is,transform results ofsome specific columnsof &lt;EM&gt;ff&lt;/EM&gt; are not right. &lt;/P&gt;&lt;P&gt;For example, if total number of columns of ff Nr=128 and the maximunnumber of thread ipar(9)is set to 4. Run the program with command "env OMP_NUM_THREADS=4 ./a.out". The transform results for i=1,33,65,97and randomly for i=2, i=34 or other columns are not correct. It seems that it's the problem with the first transform in the threads.&lt;BR /&gt;&lt;BR /&gt;Should I call commit for each thread? If so, how to? Need I to declare&lt;EM&gt;handle,ipar,dpar,ir &lt;/EM&gt;the as private?&lt;BR /&gt;Best wishes!&lt;BR /&gt; Chang lei&lt;/P&gt;</description>
      <pubDate>Fri, 05 Nov 2010 07:57:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794324#M2534</guid>
      <dc:creator>Chang_Lei</dc:creator>
      <dc:date>2010-11-05T07:57:02Z</dc:date>
    </item>
    <item>
      <title>DFT interface error when call 1D TT  in parallel loop</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794325#M2535</link>
      <description>Hi&lt;DIV&gt;It is a really strange situation, I'll try to reproduce it and wrote you about results. Nevertheless, I was a bit wrong in previous answer, set&lt;EM&gt;handle,ipar,dpar&lt;/EM&gt;shared and &lt;I&gt;ir&lt;/I&gt; firstprivate. If you really want to call commit on each thread then you need to set &lt;EM&gt;handle,ipar,dpar&lt;/EM&gt;private and also call init and free on each thread.&lt;/DIV&gt;&lt;DIV&gt;With best regards,&lt;/DIV&gt;&lt;DIV&gt;Alexander Kalinkin&lt;/DIV&gt;</description>
      <pubDate>Fri, 05 Nov 2010 10:25:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794325#M2535</guid>
      <dc:creator>Alexander_K_Intel2</dc:creator>
      <dc:date>2010-11-05T10:25:52Z</dc:date>
    </item>
    <item>
      <title>DFT interface error when call 1D TT  in parallel loop</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794326#M2536</link>
      <description>Hi,&lt;DIV&gt;I can't reproduce your issue, could you send me testcase which I can compiler and execute and provide information about your processor?&lt;/DIV&gt;&lt;DIV&gt;With best regards,&lt;/DIV&gt;&lt;DIV&gt;Alexander Kalinkin&lt;/DIV&gt;</description>
      <pubDate>Sat, 06 Nov 2010 19:20:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794326#M2536</guid>
      <dc:creator>Alexander_K_Intel2</dc:creator>
      <dc:date>2010-11-06T19:20:08Z</dc:date>
    </item>
    <item>
      <title>DFT interface error when call 1D TT  in parallel loop</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794327#M2537</link>
      <description>Hi, see the attachment.&lt;BR /&gt;It's a simple test program new wrote, and it's about parallel calling TT staggered cosine routines. You can compile it with correct link to MKL library.&lt;BR /&gt;My environment is Intel Fortran Compiler 10.1, CMKL 9.0, the CPU is (XeonE5450/5430)*2, andjob manager isCHESS on Linux.&lt;BR /&gt;For the test program, I found the error was not the same as I'm found before. For example, if ipar(9) is set to 8, if I submit my job with 1 or 2 or 3 threads, it runs ok and the results is correct. But if 4 or more thread are used, the results is not correct. But I supposed to have maximum of 8 threads to use for my CPU.&lt;BR /&gt;Can you give a correct example to parallel call TT routines?&lt;BR /&gt;Best regards!&lt;BR /&gt; Changlei</description>
      <pubDate>Sun, 07 Nov 2010 06:25:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794327#M2537</guid>
      <dc:creator>Chang_Lei</dc:creator>
      <dc:date>2010-11-07T06:25:18Z</dc:date>
    </item>
    <item>
      <title>DFT interface error when call 1D TT  in parallel loop</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794328#M2538</link>
      <description>Hi,&lt;DIV&gt;Thanks a lot for your testcase! Everything is OK but parameter used for maximum number of threads is ipar[9] in C and ipar(10) in fortran, so change line 21 in your test from ipar(9) to ipar(10). With this change your test work correctly. Could you check it?&lt;/DIV&gt;&lt;DIV&gt;With best regards,&lt;/DIV&gt;&lt;DIV&gt;Alexander Kalinkin&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sun, 07 Nov 2010 07:20:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794328#M2538</guid>
      <dc:creator>Alexander_K_Intel2</dc:creator>
      <dc:date>2010-11-07T07:20:04Z</dc:date>
    </item>
    <item>
      <title>DFT interface error when call 1D TT  in parallel loop</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794329#M2539</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;I have checked it. You are correct! In fortran the first element of array has 1 asdefault index, while in C, it's zero.&lt;BR /&gt;So thanks for your helpful suggestions in persistence.&lt;BR /&gt;Best regards.&lt;BR /&gt; Changlei &lt;/P&gt;</description>
      <pubDate>Sun, 07 Nov 2010 14:27:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794329#M2539</guid>
      <dc:creator>Chang_Lei</dc:creator>
      <dc:date>2010-11-07T14:27:58Z</dc:date>
    </item>
    <item>
      <title>DFT interface error when call 1D TT  in parallel loop</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794330#M2540</link>
      <description>You are welcome!&lt;DIV&gt;With best regards,&lt;/DIV&gt;&lt;DIV&gt;Alexander Kalinkin&lt;/DIV&gt;</description>
      <pubDate>Sun, 07 Nov 2010 14:37:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/DFT-interface-error-when-call-1D-TT-in-parallel-loop/m-p/794330#M2540</guid>
      <dc:creator>Alexander_K_Intel2</dc:creator>
      <dc:date>2010-11-07T14:37:03Z</dc:date>
    </item>
  </channel>
</rss>

