<?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 Jens, in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094813#M23486</link>
    <description>&lt;P&gt;Hi Jens,&lt;/P&gt;

&lt;P&gt;Currently we doesn't support calls of SparseBlas functionality wilh long int from lp64 library in same manner with pardiso_64 interface. We think about such kind of interface but doesn't support it now&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Alex&lt;/P&gt;</description>
    <pubDate>Sun, 06 Dec 2015 03:59:42 GMT</pubDate>
    <dc:creator>Alexander_K_Intel2</dc:creator>
    <dc:date>2015-12-06T03:59:42Z</dc:date>
    <item>
      <title>ILP64 and LP64 in the same application for sparse matrix operations</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094806#M23479</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;I am working on a c++ application which does solves and operations with sparse matrices. Because the matrices are large, I am using pardiso_64 rather than pardiso. (I am using the LP64 interface.)&lt;/P&gt;

&lt;P&gt;The problem is that I also do other things with the matrices, such as mkl_dcsrsymv for matrix-vector products. However there is no "mkl_dcsrsymv_64" and hence I must copy the 64-bit integer matrix index arrays (used in pardiso_64) to 32-bit integer arrays.&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;In my application matrix-vector products are used extensively, and I do not wish to duplicate the index data permanently. It is also not an option to switch to the ILP64 interface, because my application links in legacy fortran libraries which also links in mkl using the LP64 interface.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;I am using the single-layer linking (mkl_rt.dll), mkl 11.2 (parallel studio xe2015) and the visual studio 2010 c++ compiler.&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Is there an obvious solution to this, for example by switching between the ILP64 and LP64 interfaces runtime?&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Thanks in advance!&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;Jens&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Dec 2015 09:31:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094806#M23479</guid>
      <dc:creator>Jens_E_</dc:creator>
      <dc:date>2015-12-03T09:31:05Z</dc:date>
    </item>
    <item>
      <title>Quote:It is also not an</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094807#M23480</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;It is also not an option to switch to the ILP64 interface, because my application links in legacy fortran libraries which also links in mkl using the LP64 interface.&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;If that is the case, and you are passing the same CSR indices to those routines and to Pardiso, you do not really require the integer arguments to Pardiso to be 8-byte integers, so you could use pardiso() instead of pardiso64(), and you could thus make your entire application adhere to the LP64 model.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Because the matrices are large, I am using pardiso_64 rather than pardiso.&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;That is not necessary unless the index arrays in the CSR matrix representation are expected to contain index values larger than MAXINT_32. Note that it is possible to have a matrix that uses up more than 4 GB without needing row-index and column values to be 64-bit integers. For example, a dense square matrix of size N X N, with N = MAXINT_32, would fill up 36.9 X 10&lt;SUP&gt;18&lt;/SUP&gt; bytes with the val array, and we could still make do with the LP64 model, in which addresses are 64-bit and integers are 32-bit.&lt;/P&gt;

&lt;P&gt;Please justify the need for row-index and column values that must be 64-bit integers.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Dec 2015 13:53:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094807#M23480</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-12-03T13:53:00Z</dc:date>
    </item>
    <item>
      <title>Thanks for the reply!</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094808#M23481</link>
      <description>&lt;P&gt;Thanks for the reply!&lt;/P&gt;

&lt;P&gt;I will not require matrix indices that are larger than 32 bit integer. However, th&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;e pardiso documentation states that for problems with &amp;gt; 500 million dofs, the pardiso_64 call should be used. My application may in some cases (or in the future) be used for such problems.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;So, are you saying that I may use the LP64 model, use the pardiso call (without _64), and have matrices with more than 500million dofs?&lt;/P&gt;</description>
      <pubDate>Thu, 03 Dec 2015 14:14:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094808#M23481</guid>
      <dc:creator>Jens_E_</dc:creator>
      <dc:date>2015-12-03T14:14:00Z</dc:date>
    </item>
    <item>
      <title>I do not know where that</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094809#M23482</link>
      <description>&lt;P&gt;I do not know where that advice regarding &amp;gt; 500 million non-zeros (not unknowns, or 'dofs', as you wrote) came from. The current manual for the Basel/Lugano Pardiso-5 makes no mention of it, and does not provide for passing 8-byte integer arrays to Pardiso.&lt;/P&gt;

&lt;P&gt;How dense are your matrices expected to be?&lt;/P&gt;</description>
      <pubDate>Thu, 03 Dec 2015 14:48:23 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094809#M23482</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-12-03T14:48:23Z</dc:date>
    </item>
    <item>
      <title>They are matrices for</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094810#M23483</link>
      <description>&lt;P&gt;They are matrices for structural analysis FEA. So maybe 50-100 non-zeros per row (regardless of the total number of dofs).&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Dec 2015 14:54:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094810#M23483</guid>
      <dc:creator>Jens_E_</dc:creator>
      <dc:date>2015-12-03T14:54:06Z</dc:date>
    </item>
    <item>
      <title>Just read your comment</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094811#M23484</link>
      <description>&lt;P&gt;Just read your comment regarding unknowns vs number of non-zeros. 5&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;00 million non-zeros is actually not that much, with the sparsity I indicated (for example 10 million degrees of freedom with 50 nnz per row).&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;So it is now very relevant to know for sure whether the "500 million nnz"-comment means anything.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;One would think that with 32-bit indices arrays and 64-bit internal addressing, there is no such limit for pardiso,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;but then there must be a reason why you offer the&lt;/SPAN&gt;&lt;SPAN style="font-size: 1em; line-height: 1.5;"&gt;&amp;nbsp;pardiso_64 routine. Is it only intended for problems with more than MAXINT_32 dofs (2 billion)?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 04 Dec 2015 07:37:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094811#M23484</guid>
      <dc:creator>Jens_E_</dc:creator>
      <dc:date>2015-12-04T07:37:10Z</dc:date>
    </item>
    <item>
      <title>Quote:Jens E. wrote:...but</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094812#M23485</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Jens E. wrote:&lt;BR /&gt;...but then there must be a reason why &lt;STRONG&gt;you&lt;/STRONG&gt; offer the pardiso_64 routine...&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Please note that I have the same status as you -- forum member -- and I do not speak for Intel. Some of the Intel personnel would be better positioned to answer questions regarding the design of the Pardiso interfaces, and I hope that one of them will answer your question in a few days.&lt;/P&gt;

&lt;P&gt;By the way, please note that "dof" can be confusing to readers who do not have a background in mechanics or statistics; since "dof" is not an English word but an abbreviation of "degrees of freedom", it is not easy to look up without the dots, and D.O.F. can also stand for "depth of field".&lt;/P&gt;</description>
      <pubDate>Fri, 04 Dec 2015 13:32:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094812#M23485</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2015-12-04T13:32:00Z</dc:date>
    </item>
    <item>
      <title>Hi Jens,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094813#M23486</link>
      <description>&lt;P&gt;Hi Jens,&lt;/P&gt;

&lt;P&gt;Currently we doesn't support calls of SparseBlas functionality wilh long int from lp64 library in same manner with pardiso_64 interface. We think about such kind of interface but doesn't support it now&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Alex&lt;/P&gt;</description>
      <pubDate>Sun, 06 Dec 2015 03:59:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094813#M23486</guid>
      <dc:creator>Alexander_K_Intel2</dc:creator>
      <dc:date>2015-12-06T03:59:42Z</dc:date>
    </item>
    <item>
      <title>Hi Alex,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094814#M23487</link>
      <description>Hi Alex,

Thanks for your reply.  So to be clear, is it correct that the pardiso routine in LP64 does not use 64 bit internal addressing?

How large problems can I solve with LP64 pardiso?

How large problems can I solve with LP64 pardiso_64?</description>
      <pubDate>Sun, 06 Dec 2015 08:22:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/ILP64-and-LP64-in-the-same-application-for-sparse-matrix/m-p/1094814#M23487</guid>
      <dc:creator>Jens_E_</dc:creator>
      <dc:date>2015-12-06T08:22:29Z</dc:date>
    </item>
  </channel>
</rss>

