<?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 transpose solve vs non-transpose solve in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169201#M28419</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;

&lt;P&gt;I am wondering what differences to expect between loading in a CSR3 matrix and doing a solve, and loading in a CSC3 matrix and doing a transpose solve.&amp;nbsp; The ia and ja matrices are swapped appropriately in calling the solver.&amp;nbsp; This is for an unsymmetric matrix, mtype=11.&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;In essence the 2 matrices have identical entries, except one is transposed.&amp;nbsp; I am seeing numerical differences in the convergence.&amp;nbsp; Using CSC3, all of my examples converge.&amp;nbsp; Using CSR3, one fails.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Is it reasonable to expect the same results.&amp;nbsp; This would then lead to issues with my CSR3 implementation.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 11 Apr 2018 16:40:22 GMT</pubDate>
    <dc:creator>j_s</dc:creator>
    <dc:date>2018-04-11T16:40:22Z</dc:date>
    <item>
      <title>pardiso transpose solve vs non-transpose solve</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169201#M28419</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;

&lt;P&gt;I am wondering what differences to expect between loading in a CSR3 matrix and doing a solve, and loading in a CSC3 matrix and doing a transpose solve.&amp;nbsp; The ia and ja matrices are swapped appropriately in calling the solver.&amp;nbsp; This is for an unsymmetric matrix, mtype=11.&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;In essence the 2 matrices have identical entries, except one is transposed.&amp;nbsp; I am seeing numerical differences in the convergence.&amp;nbsp; Using CSC3, all of my examples converge.&amp;nbsp; Using CSR3, one fails.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Is it reasonable to expect the same results.&amp;nbsp; This would then lead to issues with my CSR3 implementation.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 11 Apr 2018 16:40:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169201#M28419</guid>
      <dc:creator>j_s</dc:creator>
      <dc:date>2018-04-11T16:40:22Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169202#M28420</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;As i understand you see significant difference between transpose solve of matrix and non-transpose solve of transpose matrix? If so then can you provide example of this matrix&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Alex&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Apr 2018 08:06:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169202#M28420</guid>
      <dc:creator>Alexander_K_Intel2</dc:creator>
      <dc:date>2018-04-12T08:06:22Z</dc:date>
    </item>
    <item>
      <title>I can.  Is there a matrix</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169203#M28421</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;I can. &amp;nbsp;Is there a matrix dumping routine I can use?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Apr 2018 16:59:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169203#M28421</guid>
      <dc:creator>j_s</dc:creator>
      <dc:date>2018-04-12T16:59:36Z</dc:date>
    </item>
    <item>
      <title>Attached is the first</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169204#M28422</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Attached is the first iteration for the simulation that fails.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;csc.py contains the transposed CSC matrix&lt;/P&gt;

&lt;P&gt;csr.py contains the CSR matrix&lt;/P&gt;

&lt;P&gt;foo.py imports the 2 files and compares them.&lt;/P&gt;

&lt;P&gt;below are the options used to the solver&lt;/P&gt;

&lt;P&gt;&amp;nbsp; iparm[0] = 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* No solver default */&lt;BR /&gt;
	// &amp;nbsp;iparm[1] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Fill-in reordering from METIS */&lt;BR /&gt;
	&amp;nbsp; iparm[1] = 2; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Fill-in reordering from METIS */&lt;BR /&gt;
	&amp;nbsp; iparm[3] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* No iterative-direct algorithm */&lt;BR /&gt;
	&amp;nbsp; iparm[4] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* No user fill-in reducing permutation */&lt;BR /&gt;
	&amp;nbsp; iparm[5] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Write solution into x */&lt;BR /&gt;
	&amp;nbsp; iparm[6] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Not in use */&lt;BR /&gt;
	&amp;nbsp; iparm[7] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Max numbers of iterative refinement steps */&lt;BR /&gt;
	&amp;nbsp; iparm[8] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Not in use */&lt;BR /&gt;
	&amp;nbsp; iparm[9] = 13; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Perturb the pivot elements with 1E-13 */&lt;BR /&gt;
	&amp;nbsp; iparm[10] = 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Use nonsymmetric permutation and scaling MPS */&lt;BR /&gt;
	&amp;nbsp; iparm[11] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Conjugate transposed/transpose solve */&lt;BR /&gt;
	&amp;nbsp; iparm[12] = 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Maximum weighted matching algorithm is switched-on (default for non-symmetric) */&lt;BR /&gt;
	&amp;nbsp; iparm[13] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Output: Number of perturbed pivots */&lt;BR /&gt;
	&amp;nbsp; iparm[14] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Not in use */&lt;BR /&gt;
	&amp;nbsp; iparm[15] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Not in use */&lt;BR /&gt;
	&amp;nbsp; iparm[16] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Not in use */&lt;BR /&gt;
	&amp;nbsp; iparm[17] = -1; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Output: Number of nonzeros in the factor LU */&lt;BR /&gt;
	&amp;nbsp; iparm[18] = -1; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Output: Mflops for LU factorization */&lt;BR /&gt;
	&amp;nbsp; iparm[19] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Output: Numbers of CG Iterations */&lt;BR /&gt;
	&amp;nbsp; iparm[26] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* matrix checker */&lt;BR /&gt;
	&amp;nbsp; iparm[27] = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* double precision */&lt;BR /&gt;
	&amp;nbsp; iparm[34] = 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* 0 based solve */&lt;/P&gt;

&lt;P&gt;&amp;nbsp; mtype = 11; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Real unsymmetric matrix */&lt;BR /&gt;
	&amp;nbsp; maxfct = 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Maximum number of numerical factorizations. */&lt;BR /&gt;
	&amp;nbsp; mnum = 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Which factorization to use. */&lt;BR /&gt;
	&amp;nbsp; msglvl = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Print statistical information &amp;nbsp;*/&lt;BR /&gt;
	&amp;nbsp; error = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/* Initialize error flag */&lt;BR /&gt;
	&amp;nbsp; phase = 0;&lt;BR /&gt;
	&amp;nbsp; ddum = 0.0;&lt;BR /&gt;
	&amp;nbsp; idum = 0;&lt;BR /&gt;
	&amp;nbsp; n = numeqn;&lt;BR /&gt;
	&amp;nbsp; nrhs = 1;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Apr 2018 18:57:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169204#M28422</guid>
      <dc:creator>j_s</dc:creator>
      <dc:date>2018-04-12T18:57:40Z</dc:date>
    </item>
    <item>
      <title>Hello Alex,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169205#M28423</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Hello Alex,&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;Did you have a chance to look at my example?&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Apr 2018 16:28:33 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169205#M28423</guid>
      <dc:creator>j_s</dc:creator>
      <dc:date>2018-04-20T16:28:33Z</dc:date>
    </item>
    <item>
      <title>I think that the large size</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169206#M28424</link>
      <description>&lt;P&gt;I think that the large size of the matrix and the fact that you embedded the matrices in python source code both tend to discourage people from looking at the issue.&lt;/P&gt;

&lt;P&gt;I can give you some findings that may help. I have checked that the two files csr.py and csc.py do contain one matrix each, and that one matrix is the transpose of the other (all entries are such that their relative difference is &amp;lt; 10&lt;SUP&gt;-15&lt;/SUP&gt;).&lt;/P&gt;

&lt;P&gt;I do not know what parameters you gave Pardiso or what the RHS vector b was in your work; I solved the equations using b = 1, and found that the the first ten and last ten of the resulting x values ranged in magnitude from 10&lt;SUP&gt;15&lt;/SUP&gt; to 10&lt;SUP&gt;39&lt;/SUP&gt;. The solutions from (i) the data in csr.py and (ii) the data in csc.py (with transposition of the matrix before calling Pardiso) agreed to about 4 significant digits. This indicates that you may have a scaling problem or, worse, a matrix that is poorly conditioned. These remarks need to be revised after running with the correct b vector instead of all unit values, as I did.&lt;/P&gt;</description>
      <pubDate>Mon, 23 Apr 2018 13:11:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169206#M28424</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2018-04-23T13:11:25Z</dc:date>
    </item>
    <item>
      <title>Thanks for looking at the</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169207#M28425</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Thanks for looking at the matrix. &amp;nbsp;I did not know what format to submit the matrix in to the forum, so I wrote this out from C++ to python.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;This simulation is solving a problem in a cylindrical coordinate system, meaning that vertices toward the outside of the structure are much more heavily weighted than the interior. &amp;nbsp;Most of my other test cases are in a regular coordinate system, and have no problems with the CSR matrix. &amp;nbsp;I am still curious as to why the transpose solve of the CSC works, but the solve of the CSR solve does not.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em;"&gt;Are there any settings I should try in my iparm array above?&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Apr 2018 15:30:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/pardiso-transpose-solve-vs-non-transpose-solve/m-p/1169207#M28425</guid>
      <dc:creator>j_s</dc:creator>
      <dc:date>2018-04-27T15:30:00Z</dc:date>
    </item>
  </channel>
</rss>

