<?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 Robert, in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176367#M28970</link>
    <description>&lt;P&gt;Hi Robert,&lt;/P&gt;&lt;P&gt;I don't see any faster way in MKL than using something like spmm (or sp2m) right now.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do you want to permute the rows, columns or rows and columns?&lt;/P&gt;&lt;P&gt;What do you mean by performance difference, could you please elaborate?&lt;/P&gt;&lt;P&gt;The more substantial question is: what do you want this matrix for? Often, when people think of permuting matrices (say P*A) they only need this product&amp;nbsp;to use in a computation like (P*A)*v. My point is that for, say, (P*A)*v you actually don't need to form the matrix explicitly, you can do it as P*(A*v) and thus simply&amp;nbsp;permute the intermediate vector (A*v).&lt;/P&gt;&lt;P&gt;Another thing is&amp;nbsp;that if you want to compute PAP^T with symmetric A, you can use mkl_sparse_?_sypr to avoid forming the intermediate product.&lt;/P&gt;&lt;P&gt;Best,&lt;BR /&gt;Kirill&lt;/P&gt;</description>
    <pubDate>Thu, 10 Oct 2019 03:19:59 GMT</pubDate>
    <dc:creator>Kirill_V_Intel</dc:creator>
    <dc:date>2019-10-10T03:19:59Z</dc:date>
    <item>
      <title>Permutation of a large sparse matrix</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176366#M28969</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;What is the fastest way of permuting a large sparse_matrix_t in csr or csc format?&lt;/P&gt;&lt;P&gt;I could either do manual permutations on the csr arrays or I could create a sparse permutation matrix and use the mkl_sparse_spmm method.&lt;/P&gt;&lt;P&gt;Either method seems to be not optimal since I don't&amp;nbsp;benefit from&amp;nbsp;parallelism on the former method and I have to create additional arrays for the Permutation matrix and create a new copy of the matrix on the latter method.&lt;/P&gt;&lt;P&gt;Also, I notice that there might be performance differences between column and row permutations depending on whether the matrix is in csr or csc.&lt;/P&gt;&lt;P&gt;Is&amp;nbsp;there a better&amp;nbsp;way to do it?&lt;/P&gt;</description>
      <pubDate>Tue, 08 Oct 2019 18:48:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176366#M28969</guid>
      <dc:creator>Robert_E_</dc:creator>
      <dc:date>2019-10-08T18:48:11Z</dc:date>
    </item>
    <item>
      <title>Hi Robert,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176367#M28970</link>
      <description>&lt;P&gt;Hi Robert,&lt;/P&gt;&lt;P&gt;I don't see any faster way in MKL than using something like spmm (or sp2m) right now.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do you want to permute the rows, columns or rows and columns?&lt;/P&gt;&lt;P&gt;What do you mean by performance difference, could you please elaborate?&lt;/P&gt;&lt;P&gt;The more substantial question is: what do you want this matrix for? Often, when people think of permuting matrices (say P*A) they only need this product&amp;nbsp;to use in a computation like (P*A)*v. My point is that for, say, (P*A)*v you actually don't need to form the matrix explicitly, you can do it as P*(A*v) and thus simply&amp;nbsp;permute the intermediate vector (A*v).&lt;/P&gt;&lt;P&gt;Another thing is&amp;nbsp;that if you want to compute PAP^T with symmetric A, you can use mkl_sparse_?_sypr to avoid forming the intermediate product.&lt;/P&gt;&lt;P&gt;Best,&lt;BR /&gt;Kirill&lt;/P&gt;</description>
      <pubDate>Thu, 10 Oct 2019 03:19:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176367#M28970</guid>
      <dc:creator>Kirill_V_Intel</dc:creator>
      <dc:date>2019-10-10T03:19:59Z</dc:date>
    </item>
    <item>
      <title>Robert, could you try to</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176368#M28971</link>
      <description>&lt;P&gt;Robert, could you try to submit the official Feature Request to the Intel&lt;A href="https://supporttickets.intel.com/?lang=en-US"&gt; Online Service Center&lt;/A&gt;?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 10 Oct 2019 04:16:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176368#M28971</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2019-10-10T04:16:03Z</dc:date>
    </item>
  </channel>
</rss>

