<?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 Re: High Memory Demand of Pardiso in OOC mode in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/High-Memory-Demand-of-Pardiso-in-OOC-mode/m-p/1591898#M36060</link>
    <description>&lt;P&gt;It is a well-known fact that the inverse of a sparse matrix and the L and U factors of a sparse matrix are often more "filled-in", i.e., dense, than the original matrix. For instance, in &lt;A href="https://relate.cs.illinois.edu/course/cs450-f19/f/demos/upload/pdes/Sparse%20Matrix%20Factorizations%20and%20Fill-In.html" target="_self"&gt;this instructional example&lt;/A&gt;, you can see a sparse symmetric matrix with 794 non-zero entries which has an inverse with 7148 entries and a Cholesky factor with 1819 entries.&lt;/P&gt;&lt;P&gt;Many sparse matrix methods in the Krylov class use "Incomplete Factorizations" in which the fill-in is controlled, at the expense of having to iterate in order to obtain the solution of the true linear equation system rather than an approximation of it.&lt;/P&gt;&lt;P&gt;An out-of-core method attempts to avoid holding the entire result matrix in memory, but it does need to store an in-core working subset. Pardiso has told you that the number of non-zeros in the factors is about 11 billion, which would take 89 Gbytes to store. The out-of-core algorithm has reduced this cost to 60 Gbytes.&lt;/P&gt;</description>
    <pubDate>Tue, 23 Apr 2024 15:45:56 GMT</pubDate>
    <dc:creator>mecej4</dc:creator>
    <dc:date>2024-04-23T15:45:56Z</dc:date>
    <item>
      <title>High Memory Demand of Pardiso in OOC mode</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/High-Memory-Demand-of-Pardiso-in-OOC-mode/m-p/1591705#M36059</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to solve a large unsymmetric matrix using MKL Pardiso solver.&lt;BR /&gt;&lt;BR /&gt;From the stats, which are posted below,&amp;nbsp; it can be verified that MKL is running in OOC mode.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;The matrix has&amp;nbsp;871814023 nonzeros which takes about 6.5 GB of memory.&amp;nbsp; 58.8 GB of memory is available at the start of the calclculation, nonetheless the Pardiso aborts with the following error:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;*** Error in PARDISO ( insufficient_memory) error_num= 8&lt;BR /&gt;*** Error in PARDISO memory allocation: FACTORIZE_SOLVING_LU_DATA, allocation of 21815293 bytes failed&lt;BR /&gt;total memory wanted here: 59854440 kbyte&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Why Pardiso needs&amp;nbsp;59854440 kbyte ( about 57 GB) of memory in OOC calculation mode where as the matrix size is less than 10 GB ?&amp;nbsp;&lt;BR /&gt;Aren't the L+U&amp;nbsp; factors supposed to be written to temporary files in OOC mode?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;=== PARDISO: solving a real nonsymmetric system ===&lt;BR /&gt;1-based array indexing is turned ON&lt;BR /&gt;PARDISO double precision computation is turned ON&lt;BR /&gt;METIS algorithm at reorder step is turned ON&lt;BR /&gt;Scaling is turned ON&lt;BR /&gt;Matching is turned ON&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Summary: ( reordering phase )&lt;BR /&gt;================&lt;/P&gt;&lt;P&gt;Times:&lt;BR /&gt;======&lt;BR /&gt;Time spent in calculations of symmetric matrix portrait (fulladj): 21.841203 s&lt;BR /&gt;Time spent in reordering of the initial matrix (reorder) : 78.421270 s&lt;BR /&gt;Time spent in symbolic factorization (symbfct) : 17.473810 s&lt;BR /&gt;Time spent in data preparations for factorization (parlist) : 0.143885 s&lt;BR /&gt;Time spent in allocation of internal data structures (malloc) : 0.402535 s&lt;BR /&gt;Time spent in matching/scaling : 23.728350 s&lt;BR /&gt;Time spent in additional calculations : 35.696885 s&lt;BR /&gt;Total time spent : 177.707939 s&lt;/P&gt;&lt;P&gt;Statistics:&lt;BR /&gt;===========&lt;BR /&gt;Parallel Direct Factorization is running on 8 OpenMP&lt;/P&gt;&lt;P&gt;&amp;lt; Linear system Ax = b &amp;gt;&lt;BR /&gt;number of equations: 6078755&lt;BR /&gt;number of non-zeros in A: 871814023&lt;BR /&gt;number of non-zeros in A (%): 0.002359&lt;/P&gt;&lt;P&gt;number of right-hand sides: 1&lt;/P&gt;&lt;P&gt;&amp;lt; Factors L and U &amp;gt;&lt;BR /&gt;number of columns for each panel: 192&lt;BR /&gt;number of independent subgraphs: 0&lt;BR /&gt;&amp;lt; Preprocessing with state of the art partitioning metis&amp;gt;&lt;BR /&gt;number of supernodes: 399517&lt;BR /&gt;size of largest supernode: 10854&lt;BR /&gt;number of non-zeros in L: 5815155158&lt;BR /&gt;number of non-zeros in U: 5265988113&lt;BR /&gt;number of non-zeros in L+U: 11081143271&lt;BR /&gt;iparm(17) = 93834220&lt;BR /&gt;Reordering completed ...&lt;BR /&gt;ooc_max_core_size got by Env=58800&lt;BR /&gt;The file .\pardiso_ooc.cfg was not opened&lt;BR /&gt;=== PARDISO is running in Out-Of-Core mode, because iparam(60)=1 and there is not enough RAM for In-Core ===&lt;BR /&gt;*** Error in PARDISO ( insufficient_memory) error_num= 8&lt;BR /&gt;*** Error in PARDISO memory allocation: FACTORIZE_SOLVING_LU_DATA, allocation of 21815293 bytes failed&lt;BR /&gt;total memory wanted here: 59854440 kbyte&lt;/P&gt;&lt;P&gt;=== PARDISO: solving a real nonsymmetric system ===&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Summary: ( factorization phase )&lt;BR /&gt;================&lt;/P&gt;&lt;P&gt;Times:&lt;BR /&gt;======&lt;BR /&gt;Time spent in additional calculations : 380.438875 s&lt;BR /&gt;Total time spent : 380.438875 s&lt;/P&gt;&lt;P&gt;Statistics:&lt;BR /&gt;===========&lt;BR /&gt;Parallel Direct Factorization is running on 8 OpenMP&lt;/P&gt;&lt;P&gt;&amp;lt; Linear system Ax = b &amp;gt;&lt;BR /&gt;number of equations: 6078755&lt;BR /&gt;number of non-zeros in A: 871814023&lt;BR /&gt;number of non-zeros in A (%): 0.002359&lt;/P&gt;&lt;P&gt;number of right-hand sides: 1&lt;/P&gt;&lt;P&gt;&amp;lt; Factors L and U &amp;gt;&lt;BR /&gt;number of columns for each panel: 192&lt;BR /&gt;number of independent subgraphs: 0&lt;BR /&gt;&amp;lt; Preprocessing with state of the art partitioning metis&amp;gt;&lt;BR /&gt;number of supernodes: 399517&lt;BR /&gt;size of largest supernode: 10854&lt;BR /&gt;number of non-zeros in L: 5815155158&lt;BR /&gt;number of non-zeros in U: 5265988113&lt;BR /&gt;number of non-zeros in L+U: 11081143271&lt;BR /&gt;gflop for the numerical factorization: 34402.131252&lt;/P&gt;&lt;P&gt;The following ERROR was detected: -2&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2024 06:13:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/High-Memory-Demand-of-Pardiso-in-OOC-mode/m-p/1591705#M36059</guid>
      <dc:creator>Hassan-Ebrahimi</dc:creator>
      <dc:date>2024-04-23T06:13:44Z</dc:date>
    </item>
    <item>
      <title>Re: High Memory Demand of Pardiso in OOC mode</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/High-Memory-Demand-of-Pardiso-in-OOC-mode/m-p/1591898#M36060</link>
      <description>&lt;P&gt;It is a well-known fact that the inverse of a sparse matrix and the L and U factors of a sparse matrix are often more "filled-in", i.e., dense, than the original matrix. For instance, in &lt;A href="https://relate.cs.illinois.edu/course/cs450-f19/f/demos/upload/pdes/Sparse%20Matrix%20Factorizations%20and%20Fill-In.html" target="_self"&gt;this instructional example&lt;/A&gt;, you can see a sparse symmetric matrix with 794 non-zero entries which has an inverse with 7148 entries and a Cholesky factor with 1819 entries.&lt;/P&gt;&lt;P&gt;Many sparse matrix methods in the Krylov class use "Incomplete Factorizations" in which the fill-in is controlled, at the expense of having to iterate in order to obtain the solution of the true linear equation system rather than an approximation of it.&lt;/P&gt;&lt;P&gt;An out-of-core method attempts to avoid holding the entire result matrix in memory, but it does need to store an in-core working subset. Pardiso has told you that the number of non-zeros in the factors is about 11 billion, which would take 89 Gbytes to store. The out-of-core algorithm has reduced this cost to 60 Gbytes.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2024 15:45:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/High-Memory-Demand-of-Pardiso-in-OOC-mode/m-p/1591898#M36060</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2024-04-23T15:45:56Z</dc:date>
    </item>
  </channel>
</rss>

