<?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 Arif,  in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/PARDISO-Error-2/m-p/1170592#M28550</link>
    <description>&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;Hi Arif,&amp;nbsp;&lt;/P&gt;

&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;thanks for the information.&amp;nbsp;&lt;/P&gt;

&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;Please calculate a rough&amp;nbsp;estimation for the total double precision memory consumption in Kbytes for&lt;BR /&gt;
	factorization and solver steps. It can be computed after the reordering and&lt;BR /&gt;
	symbolic factorization step according to the formula: Mem Required = max(iparm(15),iparm(16) + iparm(18)*8/1024). See if the size can be stored in your available memory safely.&lt;/P&gt;

&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;Also, you can try to use out-of-core version ( set ipram(59) == 2).&amp;nbsp;out-of-core (OOC) Intel MKL PARDISO can solve very large problems by holding the matrix factors in files on the disk, which requires a reduced amount of main memory compared to IC.&lt;/P&gt;</description>
    <pubDate>Tue, 14 Aug 2018 07:51:16 GMT</pubDate>
    <dc:creator>Jonghak_K_Intel</dc:creator>
    <dc:date>2018-08-14T07:51:16Z</dc:date>
    <item>
      <title>PARDISO  Error: -2</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/PARDISO-Error-2/m-p/1170589#M28547</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;

&lt;P&gt;I have recently started using MKL. I'm trying to solve Ax=b sort of equation with sparse A matrix using PARDISO. It is actually time domain finite element problem and I need to call the solver in a for loop. So I solve Ax=b at each time step while using values of the previous step to update A matrix.&lt;/P&gt;

&lt;P&gt;For smaller systems my code is running fine; however for bigger ones, depending on matrix size, after some time in the loop I get the error: -2 during numerical factorization. I don't think NNZ changes a lot.&lt;/P&gt;

&lt;P&gt;I'm using Visual Studio on Windows and when I get the error at least half of the RAM seems to be available and empty. So I'm not sure why I get this error at all.&lt;/P&gt;

&lt;P&gt;This a part from the message it prompts:&lt;/P&gt;

&lt;P&gt;=== PARDISO is running in In-Core mode, because iparam(60)=0 ===&lt;/P&gt;

&lt;P&gt;*** Error in PARDISO&amp;nbsp; (&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; insufficient_memory) error_num= 8&lt;/P&gt;

&lt;P&gt;*** Error in PARDISO memory allocation: FACTORIZE_SOLVING_LU_DATA, allocation of 6861 bytes failed&lt;/P&gt;

&lt;P&gt;total memory wanted here: 32291 kbyte&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I'm open to try any suggestions.&lt;/P&gt;

&lt;P&gt;Below is the part where I call PARDISO.&lt;/P&gt;

&lt;PRE class="brush:cpp; class-name:dark;"&gt;MKL_INT mtype = 11;       /* Real unsymmetric matrix */
MKL_INT nrhs = 1;     /* Number of right hand sides. */
void *pt[64]; 

char *uplo;
for (i = 0; i &amp;lt; 64; i++)
	{
		iparm&lt;I&gt; = 0;
	}
iparm[0] = 0;         /* No solver default */
iparm[1] = 2;         /* Fill-in reordering from METIS */
iparm[2] = 2;
iparm[3] = 0;         /* No iterative-direct algorithm */
iparm[4] = 0;         /* No user fill-in reducing permutation */
iparm[5] = 0;         /* Write solution into x */
iparm[6] = 0;         /* Not in use */
iparm[7] = 2;         /* Max numbers of iterative refinement steps */
iparm[8] = 0;         /* Not in use */
iparm[9] = 13;        /* Perturb the pivot elements with 1E-13 */
iparm[10] = 1;        /* Use nonsymmetric permutation and scaling MPS */
iparm[11] = 0;        /* Conjugate transposed/transpose solve */
iparm[12] = 1;        /* Maximum weighted matching algorithm is switched-on (default for non-symmetric) */
iparm[13] = 0;        /* Output: Number of perturbed pivots */
iparm[14] = 0;        /* Not in use */
iparm[15] = 0;        /* Not in use */
iparm[16] = 0;        /* Not in use */
iparm[17] = -1;       /* Output: Number of nonzeros in the factor LU */
iparm[18] = -1;       /* Output: Mflops for LU factorization */
iparm[19] = 0;        /* Output: Numbers of CG Iterations */
maxfct = 1;           /* Maximum number of numerical factorizations. */
mnum = 1;         /* Which factorization to use. */
msglvl = 1;           /* Print statistical information in file */
error = 0;            /* Initialize error flag */
for (i = 0; i &amp;lt; 64; i++)
	{
		pt&lt;I&gt; = 0;
	}
phase = 11;
PARDISO(pt, &amp;amp;maxfct, &amp;amp;mnum, &amp;amp;mtype, &amp;amp;phase,
		&amp;amp;aRowN, vallsA, rowwsA, collsA, &amp;amp;idum, &amp;amp;nrhs, iparm, &amp;amp;msglvl, &amp;amp;ddum, &amp;amp;ddum, &amp;amp;error);
         	cout &amp;lt;&amp;lt; iparm[16] &amp;lt;&amp;lt; endl;
	if (error != 0)
	{
		printf("\nERROR during symbolic factorization: %d", error);
		cin.get();
		exit(1);
	}

	
phase = 22;
PARDISO(pt, &amp;amp;maxfct, &amp;amp;mnum, &amp;amp;mtype, &amp;amp;phase,
		&amp;amp;aRowN, vallsA, rowwsA, collsA, &amp;amp;idum, &amp;amp;nrhs, iparm, &amp;amp;msglvl, &amp;amp;ddum, &amp;amp;ddum, &amp;amp;error);
	if (error != 0)
	{
		printf("\nERROR during numerical factorization: %d", error);
		cout &amp;lt;&amp;lt; "Press any key to exit." &amp;lt;&amp;lt; endl;
		cin.get();
		exit(2);
	}

	
phase = 33;
	if (iparm[11] == 0)
		uplo = "non-transposed";

	PARDISO(pt, &amp;amp;maxfct, &amp;amp;mnum, &amp;amp;mtype, &amp;amp;phase,
			&amp;amp;aRowN, vallsA, rowwsA, collsA, &amp;amp;idum, &amp;amp;nrhs, iparm, &amp;amp;msglvl, matBB, solVals, &amp;amp;error);
	if (error != 0)
		{
			printf("\nERROR during solution: %d", error);
			cin.get();
			exit(3);
		}

		
phase = -1;           /* Release internal memory. */
	PARDISO(pt, &amp;amp;maxfct, &amp;amp;mnum, &amp;amp;mtype, &amp;amp;phase,
		&amp;amp;aRowN, &amp;amp;ddum, rowwsA, collsA, &amp;amp;idum, &amp;amp;nrhs,
		iparm, &amp;amp;msglvl, &amp;amp;ddum, &amp;amp;ddum, &amp;amp;error);
	&lt;/I&gt;&lt;/I&gt;&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Aug 2018 12:12:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/PARDISO-Error-2/m-p/1170589#M28547</guid>
      <dc:creator>Gungor__Arif</dc:creator>
      <dc:date>2018-08-13T12:12:44Z</dc:date>
    </item>
    <item>
      <title>Hi Arif, </title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/PARDISO-Error-2/m-p/1170590#M28548</link>
      <description>&lt;P&gt;Hi Arif,&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;may I know the sizes of the matrix and your available memory?&amp;nbsp;&lt;/P&gt;

&lt;P&gt;and what is the version of MKL you are using ?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Aug 2018 07:01:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/PARDISO-Error-2/m-p/1170590#M28548</guid>
      <dc:creator>Jonghak_K_Intel</dc:creator>
      <dc:date>2018-08-14T07:01:57Z</dc:date>
    </item>
    <item>
      <title>Hi Jon, </title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/PARDISO-Error-2/m-p/1170591#M28549</link>
      <description>&lt;P&gt;Hi Jon,&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Thanks for the reply.&lt;/P&gt;

&lt;P&gt;The issue I described happened with a sparse matrix of (15000x15000) on a 16 GB RAM laptop (more than 13 GB available during code run). However I intend to use the solver later on with a (1Mx1M) matrix on a 64 or 128 GB RAM computer.&lt;/P&gt;

&lt;P&gt;It's MKL 2018 Update 1 Package.&lt;/P&gt;</description>
      <pubDate>Tue, 14 Aug 2018 07:13:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/PARDISO-Error-2/m-p/1170591#M28549</guid>
      <dc:creator>Gungor__Arif</dc:creator>
      <dc:date>2018-08-14T07:13:00Z</dc:date>
    </item>
    <item>
      <title>Hi Arif, </title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/PARDISO-Error-2/m-p/1170592#M28550</link>
      <description>&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;Hi Arif,&amp;nbsp;&lt;/P&gt;

&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;thanks for the information.&amp;nbsp;&lt;/P&gt;

&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;Please calculate a rough&amp;nbsp;estimation for the total double precision memory consumption in Kbytes for&lt;BR /&gt;
	factorization and solver steps. It can be computed after the reordering and&lt;BR /&gt;
	symbolic factorization step according to the formula: Mem Required = max(iparm(15),iparm(16) + iparm(18)*8/1024). See if the size can be stored in your available memory safely.&lt;/P&gt;

&lt;P style="word-wrap: break-word; font-size: 12px;"&gt;Also, you can try to use out-of-core version ( set ipram(59) == 2).&amp;nbsp;out-of-core (OOC) Intel MKL PARDISO can solve very large problems by holding the matrix factors in files on the disk, which requires a reduced amount of main memory compared to IC.&lt;/P&gt;</description>
      <pubDate>Tue, 14 Aug 2018 07:51:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/PARDISO-Error-2/m-p/1170592#M28550</guid>
      <dc:creator>Jonghak_K_Intel</dc:creator>
      <dc:date>2018-08-14T07:51:16Z</dc:date>
    </item>
    <item>
      <title>Thank you for the information</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/PARDISO-Error-2/m-p/1170593#M28551</link>
      <description>&lt;P&gt;Thank you for the information.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I actually had more than sufficient memory when I got that error, still a bit confusing. However, switching to pardiso_64 worked well. Then for a larger system as you suggested I ended up moving to&amp;nbsp; OOC PARDISO.&lt;/P&gt;</description>
      <pubDate>Thu, 16 Aug 2018 08:07:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/PARDISO-Error-2/m-p/1170593#M28551</guid>
      <dc:creator>Gungor__Arif</dc:creator>
      <dc:date>2018-08-16T08:07:11Z</dc:date>
    </item>
  </channel>
</rss>

