<?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 Pardiso sparse right hand side iparm(31) = 1 (or iparm[30]=1 in C++) in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939371#M14362</link>
    <description>&lt;P&gt;Dear All&lt;/P&gt;
&lt;P&gt;I am testing an example with sparse right hand side and sparse solution iparm[30 ]=1 in my C++.&lt;/P&gt;
&lt;P&gt;What I have noticed that&lt;/P&gt;
&lt;P&gt;the solution of (perm[0] = 0, b[0] !=0) and (perm[0], b[0]=0) are different.&lt;/P&gt;
&lt;P&gt;But I expected that the solution should be the same since perm[0]= 0,&lt;/P&gt;
&lt;P&gt;Furthermore the solution x[0] is 0th entry of the solution vectro.&lt;/P&gt;
&lt;P&gt;However, from the pardiso manul of iparm(31), x[0] should be a random number, since I did't request to caculate it.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/GUID-E1E2E435-241F-47CB-83D5-9322CA21473E.htm#GUID-E1E2E435-241F-47CB-83D5-9322CA21473E" target="_blank"&gt;http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/GUID-E1E2E435-241F-47CB-83D5-9322CA21473E.htm#GUID-E1E2E435-241F-47CB-83D5-9322CA21473E&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The attachment is my C++ code.&lt;/P&gt;
&lt;P&gt;Could you tell me why this happened?&lt;/P&gt;
&lt;P&gt;Hailong&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 23 Apr 2013 00:23:54 GMT</pubDate>
    <dc:creator>Hailong_X_</dc:creator>
    <dc:date>2013-04-23T00:23:54Z</dc:date>
    <item>
      <title>Pardiso sparse right hand side iparm(31) = 1 (or iparm[30]=1 in C++)</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939371#M14362</link>
      <description>&lt;P&gt;Dear All&lt;/P&gt;
&lt;P&gt;I am testing an example with sparse right hand side and sparse solution iparm[30 ]=1 in my C++.&lt;/P&gt;
&lt;P&gt;What I have noticed that&lt;/P&gt;
&lt;P&gt;the solution of (perm[0] = 0, b[0] !=0) and (perm[0], b[0]=0) are different.&lt;/P&gt;
&lt;P&gt;But I expected that the solution should be the same since perm[0]= 0,&lt;/P&gt;
&lt;P&gt;Furthermore the solution x[0] is 0th entry of the solution vectro.&lt;/P&gt;
&lt;P&gt;However, from the pardiso manul of iparm(31), x[0] should be a random number, since I did't request to caculate it.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/GUID-E1E2E435-241F-47CB-83D5-9322CA21473E.htm#GUID-E1E2E435-241F-47CB-83D5-9322CA21473E" target="_blank"&gt;http://software.intel.com/sites/products/documentation/hpc/mkl/mklman/GUID-E1E2E435-241F-47CB-83D5-9322CA21473E.htm#GUID-E1E2E435-241F-47CB-83D5-9322CA21473E&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The attachment is my C++ code.&lt;/P&gt;
&lt;P&gt;Could you tell me why this happened?&lt;/P&gt;
&lt;P&gt;Hailong&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2013 00:23:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939371#M14362</guid>
      <dc:creator>Hailong_X_</dc:creator>
      <dc:date>2013-04-23T00:23:54Z</dc:date>
    </item>
    <item>
      <title>There is one problem in your</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939372#M14363</link>
      <description>&lt;P&gt;There is one problem in your code. On line 76, you set iparm[0] = 0. You should have set iparm[0] = 1, which guarantees you all iparm paramenters are not taking default values. &lt;/P&gt;
&lt;P&gt;With this fixed, I don't see difference in x[2] (this is the only result you'd care about because perm[2] = 1), no matter what value given to b[0].&lt;/P&gt;
&lt;P&gt;Other minor problems: You do not need iparm[2] and iparm[51]. These are not used by MKL PARDISO at present.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2013 21:37:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939372#M14363</guid>
      <dc:creator>Zhang_Z_Intel</dc:creator>
      <dc:date>2013-04-23T21:37:21Z</dc:date>
    </item>
    <item>
      <title>Hi Zhang</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939373#M14364</link>
      <description>&lt;P&gt;Hi Zhang&lt;/P&gt;
&lt;P&gt;Thanks for your suggestions.&lt;/P&gt;
&lt;P&gt;I have one more question. If I am running a program with 1 node 16 cores, how many cores will pardiso use?&lt;/P&gt;
&lt;P&gt;I just need everything is serial not multi-threaded.&lt;/P&gt;
&lt;P&gt;Hailong&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2013 22:13:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939373#M14364</guid>
      <dc:creator>Hailong_X_</dc:creator>
      <dc:date>2013-04-23T22:13:15Z</dc:date>
    </item>
    <item>
      <title>Hi Zhang</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939374#M14365</link>
      <description>&lt;P&gt;Hi Zhang&lt;/P&gt;
&lt;P&gt;I just tested with iparm[0]=1. Now b[0] has no effect on the solution. However, x[0] and x[1] seems to be caculated with iparm[30]=1.&lt;/P&gt;
&lt;P&gt;From&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mklman/GUID-264E311E-ACED-4D56-AC31-E9D3B11D1CBF.htm"&gt;http://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mklman/GUID-264E311E-ACED-4D56-AC31-E9D3B11D1CBF.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;x[0] and x[1] will be caculated only with iparm[30]=2 instead of iparm[30]=1 (which is the case in my code).&lt;/P&gt;
&lt;P&gt;Hailong&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2013 22:28:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939374#M14365</guid>
      <dc:creator>Hailong_X_</dc:creator>
      <dc:date>2013-04-23T22:28:19Z</dc:date>
    </item>
    <item>
      <title>For this real tiny problem,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939375#M14366</link>
      <description>&lt;P&gt;For this real tiny problem, it might be easier for MKL to just compute the whole x vector. It doesn't do any harm by giving you more than you asked, I believe :) You can always discard x[0] and x[1] if you do not need them.&lt;/P&gt;
&lt;P&gt;To answer your earlier question, MKL by default automatically adjusts the number of threads at run time. For tiny/small problems, an MKL function uses only 1 thread (i.e. 1 core). For large problems, it uses more cores available on the system. If you want it to be serial, you should link with the sequential MKL (Use&lt;A href="http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor"&gt; this tool&lt;/A&gt; to determine the exact link line). Or, you can call function mkl_set_num_threads() to set the number of threads to 1. You can also use env-variables like MKL_NUM_THREADS or OMP_NUM_THREADS.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2013 23:12:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939375#M14366</guid>
      <dc:creator>Zhang_Z_Intel</dc:creator>
      <dc:date>2013-04-23T23:12:18Z</dc:date>
    </item>
    <item>
      <title>Hi Zhang</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939376#M14367</link>
      <description>&lt;P&gt;Hi Zhang&lt;/P&gt;
&lt;P&gt;Thanks a lot for your help.&lt;/P&gt;
&lt;P&gt;I just tested another problem with the same matrix, but the only nonzero rhs at the 0th entry (b[0]), then x[1] and x[2] are not caculated as I hoped. With iparm[30] = 2, x[1] and x[2] are caculated. Since this functionality is crucial for my real and big application, I need to make sure it is working as I expected.&lt;/P&gt;
&lt;P&gt;Here is another question, If my OMP_NUM_THREADS = 1, can I make sure it is serial?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hailong&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2013 23:33:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939376#M14367</guid>
      <dc:creator>Hailong_X_</dc:creator>
      <dc:date>2013-04-23T23:33:24Z</dc:date>
    </item>
    <item>
      <title>Quote:Hailong X. wrote:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939377#M14368</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Hailong X. wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Here is another question, If my OMP_NUM_THREADS = 1, can I make sure it is serial?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Yes.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Apr 2013 16:01:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939377#M14368</guid>
      <dc:creator>Zhang_Z_Intel</dc:creator>
      <dc:date>2013-04-24T16:01:07Z</dc:date>
    </item>
    <item>
      <title>Quote:Hailong X. wrote:</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939378#M14369</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Hailong X. wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hi Zhang&lt;/P&gt;&lt;P&gt;Thanks a lot for your help.&lt;/P&gt;&lt;P&gt;I just tested another problem with the same matrix, but the only nonzero rhs at the 0th entry (b[0]), then x[1] and x[2] are not caculated as I hoped. With iparm[30] = 2, x[1] and x[2] are caculated. Since this functionality is crucial for my real and big application, I need to make sure it is working as I expected.&lt;/P&gt;&lt;P&gt;Here is another question, If my OMP_NUM_THREADS = 1, can I make sure it is serial?&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hailong&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dear Hailong, did you finally get a solution for your problem? I also met this problem. And still as you stated, the whole results were obtained since I want only part of the solution.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Sep 2019 09:11:52 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Pardiso-sparse-right-hand-side-iparm-31-1-or-iparm-30-1-in-C/m-p/939378#M14369</guid>
      <dc:creator>CHENG__JIM</dc:creator>
      <dc:date>2019-09-10T09:11:52Z</dc:date>
    </item>
  </channel>
</rss>

