<?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 transpose matrix stored in CSR format using MKL in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033562#M20263</link>
    <description>&lt;P&gt;All,&lt;/P&gt;

&lt;P&gt;I have some legacy parallel code that uses CSR format to store a very large, sparse matrix. In making some additions to the code, I have the need to transpose the matrix,&amp;nbsp;storing the transpose in CSR format as well.&lt;/P&gt;

&lt;P&gt;Is there a routine in the MKL that would help me do this? I thought of using a BLAS routine to repeatedly multiply column vectors with ones in successive locations by the matrix, and accumulate the results. Is there a better way?&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Tom&lt;/P&gt;</description>
    <pubDate>Thu, 05 Jun 2014 21:14:40 GMT</pubDate>
    <dc:creator>Thomas_D_</dc:creator>
    <dc:date>2014-06-05T21:14:40Z</dc:date>
    <item>
      <title>transpose matrix stored in CSR format using MKL</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033562#M20263</link>
      <description>&lt;P&gt;All,&lt;/P&gt;

&lt;P&gt;I have some legacy parallel code that uses CSR format to store a very large, sparse matrix. In making some additions to the code, I have the need to transpose the matrix,&amp;nbsp;storing the transpose in CSR format as well.&lt;/P&gt;

&lt;P&gt;Is there a routine in the MKL that would help me do this? I thought of using a BLAS routine to repeatedly multiply column vectors with ones in successive locations by the matrix, and accumulate the results. Is there a better way?&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Tom&lt;/P&gt;</description>
      <pubDate>Thu, 05 Jun 2014 21:14:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033562#M20263</guid>
      <dc:creator>Thomas_D_</dc:creator>
      <dc:date>2014-06-05T21:14:40Z</dc:date>
    </item>
    <item>
      <title>Here is an idea for you to</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033563#M20264</link>
      <description>&lt;P&gt;Here is an idea for you to evaluate -- it may not be as efficient as writing your own code to do the transformation, but it is unlikely to lead to a bottleneck.&lt;/P&gt;

&lt;P&gt;Note that the CSR representation of a matrix A is identical to the CSC representation of A&lt;SUP&gt;T&lt;/SUP&gt;. Therefore, code using the relevant version of&amp;nbsp;mkl_?csrcsc may be the easiest to implement.&lt;/P&gt;

&lt;P&gt;Alternatively, convert the CSR representation to a COO representation, say (IC, JC, VC). The COO representation of the transpose is (JC,IC,VC). Convert this COO representation to a CSR representation of the transposed matrix.&lt;/P&gt;

&lt;P&gt;Which option to use depends on what other transformations you need to perform, if any, in addition to transposing.&lt;/P&gt;

&lt;P&gt;Routines for doing the conversions indicated are provided in MKL.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 05 Jun 2014 22:19:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033563#M20264</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-06-05T22:19:00Z</dc:date>
    </item>
    <item>
      <title>Thanks, that look like a</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033564#M20265</link>
      <description>&lt;P&gt;Thanks, that look like a promising approach!&lt;/P&gt;

&lt;P&gt;Regards,&lt;/P&gt;

&lt;P&gt;Tom&lt;/P&gt;</description>
      <pubDate>Fri, 06 Jun 2014 18:44:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033564#M20265</guid>
      <dc:creator>Thomas_D_</dc:creator>
      <dc:date>2014-06-06T18:44:51Z</dc:date>
    </item>
    <item>
      <title>The function of mkl_sparse_?</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033565#M20266</link>
      <description>&lt;P&gt;The function of mkl_sparse_?_add can perform what you want.&lt;/P&gt;</description>
      <pubDate>Thu, 20 Dec 2018 07:23:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033565#M20266</guid>
      <dc:creator>Li__Yapeng</dc:creator>
      <dc:date>2018-12-20T07:23:50Z</dc:date>
    </item>
    <item>
      <title>good catch, thanks, but Tom,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033566#M20267</link>
      <description>&lt;P&gt;good catch, thanks,&amp;nbsp;but Tom, please take into account this functionality was added since MKL v.11.3 and i am not sure whch version of MKL do you use right now. The latest version of MKL is 2019 ( release, Aug 2018)&lt;/P&gt;</description>
      <pubDate>Thu, 20 Dec 2018 14:48:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033566#M20267</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2018-12-20T14:48:06Z</dc:date>
    </item>
    <item>
      <title>Hi,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033567#M20268</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Another solution is to use MKL_SPARSE_CONVERT_CSR. Even if the matrix is in CSR format, if you perform (RACSR in my example is a matrix already stored in CSR format),&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mkl_status = MKL_SPARSE_CONVERT_CSR(RACSR, SPARSE_OPERATION_TRANSPOSE, RACSR)&lt;/P&gt;&lt;P&gt;after this command, RACSR is transposed.&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Alberto&lt;/P&gt;</description>
      <pubDate>Tue, 11 Feb 2020 17:56:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033567#M20268</guid>
      <dc:creator>Tibaldi__Alberto</dc:creator>
      <dc:date>2020-02-11T17:56:00Z</dc:date>
    </item>
    <item>
      <title>just for info: the current (</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033568#M20269</link>
      <description>&lt;P&gt;just for info: the current ( MKL 2020) status of&amp;nbsp;mkl_sparse_?_add routine: this routine is only supported for sparse matrices in CSR and BSR formats. It is not supported for COO or CSC formats.&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 12 Feb 2020 03:21:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/transpose-matrix-stored-in-CSR-format-using-MKL/m-p/1033568#M20269</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2020-02-12T03:21:05Z</dc:date>
    </item>
  </channel>
</rss>

