<?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 Hi Boris, in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/943000#M14634</link>
    <description>&lt;P&gt;Hi Boris,&lt;/P&gt;
&lt;P&gt;Let me answer your questions in some more details:&lt;/P&gt;
&lt;P&gt;1) As Ying mentioned, it's Ok to solve a few matrices simultaneously by MKL PARDISO/DSS. You only need own data structures for PARDISO in each thread.&lt;/P&gt;
&lt;P&gt;2) Indeed, this question is tricky. You call MKL from different Windows threads. So, you may force MKL to not generate more threads if:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- link with sequential version of MKL library.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- set MKL_NUM_THREADS or OMP_NUM_THREADS variables to 1.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Otherwise, MKL will create as much threads as possible per your own thread (the number of threads will be equal to the number of physical cores or equal to the values of variables specified above).&lt;/P&gt;
&lt;P&gt;3)&amp;nbsp;Unfortunately, there's no way to distinguish from which Windows thread MKL PARDISO is called. It will always return ithr equal to 0 (it's so because MKL does not understand from which Windows thread you called it. It only knows the number of OpenMP threads inside MKL. And MKL PARDISO always reports progress from OpenMP thread number 0 ).&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Konstantin&lt;/P&gt;</description>
    <pubDate>Fri, 11 Oct 2013 09:49:00 GMT</pubDate>
    <dc:creator>Konstantin_A_Intel</dc:creator>
    <dc:date>2013-10-11T09:49:00Z</dc:date>
    <item>
      <title>mkl_progress with parallely running calculations</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/942994#M14628</link>
      <description>&lt;P&gt;I have many matrixes to solve. My&amp;nbsp; intention is to do it in a multithreading application where every matrix is solved by its dedicated thread.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As I&amp;nbsp;understand, the mkl library has to support&amp;nbsp;the parallel calculations, because each matrix has its&amp;nbsp;own handle.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;My quesion is how can I differ between different threads in the&amp;nbsp;&amp;nbsp;mkl_progress()&amp;nbsp; ?&lt;/P&gt;
&lt;P&gt;Thanks in advance&lt;/P&gt;
&lt;P&gt;Boris&lt;/P&gt;
&lt;P&gt;&amp;nbsp;.&lt;/P&gt;</description>
      <pubDate>Tue, 01 Oct 2013 07:18:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/942994#M14628</guid>
      <dc:creator>Boris_Sunik</dc:creator>
      <dc:date>2013-10-01T07:18:05Z</dc:date>
    </item>
    <item>
      <title>Hello all,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/942995#M14629</link>
      <description>&lt;P&gt;Hello all,&lt;/P&gt;
&lt;P&gt;I didn't get the answer during the past week, probably my question wasn't&amp;nbsp;understood, hence I try to explain it in other words.&lt;/P&gt;
&lt;P&gt;I have several matrix, which I want to solve with PARDISO linear solver. My intent is to start the solving process simultaneously, each invocation of .&amp;nbsp;PARDISO&amp;nbsp;solver&amp;nbsp;in its own thread, which I start in the calling application. As I understand, it has to be possible, because each matrix has its own&amp;nbsp;_MKL_DSS_HANDLE_t handler.&lt;/P&gt;
&lt;P&gt;Furhtermore, I want to use&lt;STRONG&gt; mkl_progress(&lt;/STRONG&gt;) for interrupting the calculation of a particular matrix. In order to do it, I need to find out, with which matrix this function is&amp;nbsp;just invocated.&amp;nbsp;It seems that the&amp;nbsp;&lt;STRONG&gt;ithr &lt;/STRONG&gt;pointer is irrelevant in this issue.&amp;nbsp; My questions are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;It is possible to to solve many matrixes&amp;nbsp;simultaneously?&lt;/LI&gt;
&lt;LI&gt;Can mkl library start further&amp;nbsp;threads for a single matrix solved in such a way?&lt;/LI&gt;
&lt;LI&gt;If parallel solution of several matrix&amp;nbsp;is possible, how can I differ between different invocations of the PARDISO solver?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;I hope on your answer?&lt;/P&gt;
&lt;P&gt;Boris&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 07 Oct 2013 14:12:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/942995#M14629</guid>
      <dc:creator>Boris_Sunik</dc:creator>
      <dc:date>2013-10-07T14:12:52Z</dc:date>
    </item>
    <item>
      <title>Hi Boris,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/942996#M14630</link>
      <description>&lt;P&gt;Hi Boris,&lt;/P&gt;
&lt;P&gt;The first question seems easy to answer.&lt;/P&gt;
&lt;P&gt;Yes, it is possible to solve many matrixes simultaneously.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But the second question regarding mkl_progress() is a little complex as the thread schedule&amp;nbsp;is not controled by developers, so it is hard to differ the invocation. But&amp;nbsp;i guess, &amp;nbsp;it is still doable as&amp;nbsp;&amp;nbsp;generally, thread should be able to provide the interface to return itself status, then we may add such status into mkl_progress().&lt;/P&gt;
&lt;P&gt;How do you thread your application? could you provide a exact implementation, then we may try to add such information to mkl_progress()?&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Ying&lt;/P&gt;
&lt;P&gt;P.S Here is&amp;nbsp;one discussion on call dss in pthread for your reference&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://software.intel.com/en-us/forums/topic/404629"&gt;http://software.intel.com/en-us/forums/topic/404629&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 09 Oct 2013 05:55:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/942996#M14630</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2013-10-09T05:55:52Z</dc:date>
    </item>
    <item>
      <title>I start the normal window</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/942997#M14631</link>
      <description>&lt;P&gt;I start the normal window thread with&lt;STRONG&gt; AfxBeginThread()&lt;/STRONG&gt;.&lt;STRONG&gt; &lt;/STRONG&gt;Currently I start&amp;nbsp;calculation threads&amp;nbsp; from a non-main&amp;nbsp;thread , but I can change the starting&amp;nbsp;thread to&amp;nbsp;the main thread wenn necessary.&amp;nbsp;All calls of mkl routines occur in the same calculation thread.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I see that if &lt;STRONG&gt;ithr &lt;/STRONG&gt;pointer in mkl_progress is null this routine is called from the same thread.&amp;nbsp;What&amp;nbsp;have I&amp;nbsp;to do when&amp;nbsp;&lt;STRONG&gt;lhtr&lt;/STRONG&gt; pointer gets non-zero value?&lt;/P&gt;</description>
      <pubDate>Thu, 10 Oct 2013 06:55:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/942997#M14631</guid>
      <dc:creator>Boris_Sunik</dc:creator>
      <dc:date>2013-10-10T06:55:00Z</dc:date>
    </item>
    <item>
      <title>Hi Boris,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/942998#M14632</link>
      <description>&lt;P&gt;Hi Boris,&lt;/P&gt;
&lt;P&gt;Could you please attach one test case so we can investigate&amp;nbsp;it specifically?&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;/P&gt;
&lt;P&gt;Ying&lt;/P&gt;</description>
      <pubDate>Thu, 10 Oct 2013 08:37:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/942998#M14632</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2013-10-10T08:37:25Z</dc:date>
    </item>
    <item>
      <title>I uploaded the file fragment.</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/942999#M14633</link>
      <description>&lt;P&gt;I uploaded the file fragment.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;startCalculation()&lt;/STRONG&gt; starts &lt;STRONG&gt;start_calculation_task()&lt;/STRONG&gt; for a single matrix. Other code is your standard example&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 10 Oct 2013 10:32:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/942999#M14633</guid>
      <dc:creator>Boris_Sunik</dc:creator>
      <dc:date>2013-10-10T10:32:03Z</dc:date>
    </item>
    <item>
      <title>Hi Boris,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/943000#M14634</link>
      <description>&lt;P&gt;Hi Boris,&lt;/P&gt;
&lt;P&gt;Let me answer your questions in some more details:&lt;/P&gt;
&lt;P&gt;1) As Ying mentioned, it's Ok to solve a few matrices simultaneously by MKL PARDISO/DSS. You only need own data structures for PARDISO in each thread.&lt;/P&gt;
&lt;P&gt;2) Indeed, this question is tricky. You call MKL from different Windows threads. So, you may force MKL to not generate more threads if:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- link with sequential version of MKL library.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- set MKL_NUM_THREADS or OMP_NUM_THREADS variables to 1.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Otherwise, MKL will create as much threads as possible per your own thread (the number of threads will be equal to the number of physical cores or equal to the values of variables specified above).&lt;/P&gt;
&lt;P&gt;3)&amp;nbsp;Unfortunately, there's no way to distinguish from which Windows thread MKL PARDISO is called. It will always return ithr equal to 0 (it's so because MKL does not understand from which Windows thread you called it. It only knows the number of OpenMP threads inside MKL. And MKL PARDISO always reports progress from OpenMP thread number 0 ).&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;Konstantin&lt;/P&gt;</description>
      <pubDate>Fri, 11 Oct 2013 09:49:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/943000#M14634</guid>
      <dc:creator>Konstantin_A_Intel</dc:creator>
      <dc:date>2013-10-11T09:49:00Z</dc:date>
    </item>
    <item>
      <title>1. do you plan to extend mkl</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/943001#M14635</link>
      <description>&lt;P&gt;&lt;STRONG&gt;MKL PARDISO always report progress from OpenMP thread number 0&lt;/STRONG&gt;. If&amp;nbsp;this is the same thread from which I call mkl then I can get it&amp;nbsp; in &lt;STRONG&gt;mkl_progress()&lt;/STRONG&gt; with &lt;STRONG&gt;GetCurrentThread()&lt;/STRONG&gt;? Am I right?&lt;/P&gt;
&lt;P&gt;If above&amp;nbsp;assumpiton is wrong then two further questions:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Do you plan to extend mkl_progress in&amp;nbsp;future releases?&lt;/LI&gt;
&lt;LI&gt;If not, can I call certain threads with&amp;nbsp;MKL_NUM_THREADS==1&amp;nbsp;and&amp;nbsp;other thread(s)&amp;nbsp;with other values &amp;nbsp;of this variable?&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 11 Oct 2013 09:58:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/943001#M14635</guid>
      <dc:creator>Boris_Sunik</dc:creator>
      <dc:date>2013-10-11T09:58:00Z</dc:date>
    </item>
    <item>
      <title>Note that OpenMP threads are</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/943002#M14636</link>
      <description>&lt;P&gt;Note that OpenMP threads are different than Windows threads. Function GetCurrentThread() gives you the thread ID of the calling Windows thread, which has nothing to do with OpenMP threads. It is not clear how you plan to use PARDISO. For example, do you call PARDISO from each Windows thread? Or, do you call PARDISO from only one Windows thread? Also, do you intend to use sequential PARDISO or parallel PARDISO? If it's parallel PARDISO then MKL will spawn OpenMP threads, in addition to existing Windows threads. Depends on your situation, this may or may not be what you want.&lt;BR /&gt;&lt;BR /&gt;We will extend mkl_progress if there are reasonable customer requirements and if we believe it can bring value to our customers.Please be specific about what kind of extension you have in mind.&lt;BR /&gt;&lt;BR /&gt;It is possible to set different values of MKL_NUM_THREADS for different user threads, by using the function "mkl_set_num_threads_local". See the documentation of it here: &lt;A href="http://software.intel.com/en-us/node/471138" target="_blank"&gt;http://software.intel.com/en-us/node/471138&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Nov 2013 19:25:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/943002#M14636</guid>
      <dc:creator>Zhang_Z_Intel</dc:creator>
      <dc:date>2013-11-05T19:25:43Z</dc:date>
    </item>
    <item>
      <title>I start calculation by</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/943003#M14637</link>
      <description>&lt;P&gt;I start calculation by producing a thread with the handler-function "caclulate()". This function&amp;nbsp;consequently invokes&lt;/P&gt;
&lt;P&gt;dss_create(), dss_define_structure() etc.&lt;/P&gt;
&lt;P&gt;the next matrix will start yet further thread.&lt;/P&gt;
&lt;P&gt;My idea ist that if have a set&amp;nbsp;of calculate()'s &amp;nbsp;thread&amp;nbsp; handlers I can identifiy the thread in mkl_progress()&amp;nbsp; by calling GetCurrentThread() and finding its hundler in my set.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Am I right?&lt;/P&gt;</description>
      <pubDate>Thu, 07 Nov 2013 09:03:45 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/943003#M14637</guid>
      <dc:creator>Boris_Sunik</dc:creator>
      <dc:date>2013-11-07T09:03:45Z</dc:date>
    </item>
    <item>
      <title>My idea ist that if have a</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/943004#M14638</link>
      <description>&lt;BLOCKQUOTE&gt;
&lt;P&gt;My idea ist that if have a set&amp;nbsp;of calculate()'s &amp;nbsp;thread&amp;nbsp; handlers I can identifiy the thread in mkl_progress()&amp;nbsp; by calling GetCurrentThread() and finding its hundler in my set.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Am I right?&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You can give it a try. It may work.&lt;/P&gt;</description>
      <pubDate>Thu, 07 Nov 2013 23:10:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/mkl-progress-with-parallely-running-calculations/m-p/943004#M14638</guid>
      <dc:creator>Zhang_Z_Intel</dc:creator>
      <dc:date>2013-11-07T23:10:07Z</dc:date>
    </item>
  </channel>
</rss>

