topic Permutation of a large sparse matrix in IntelĀ® oneAPI Math Kernel Library & IntelĀ® Math Kernel Library
https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176366#M28969
<P>Hi,</P><P>What is the fastest way of permuting a large sparse_matrix_t in csr or csc format?</P><P>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.</P><P>Either method seems to be not optimal since I don't benefit from 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.</P><P>Also, I notice that there might be performance differences between column and row permutations depending on whether the matrix is in csr or csc.</P><P>Is there a better way to do it?</P>Tue, 08 Oct 2019 18:48:11 GMTRobert_E_2019-10-08T18:48:11ZPermutation of a large sparse matrix
https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176366#M28969
<P>Hi,</P><P>What is the fastest way of permuting a large sparse_matrix_t in csr or csc format?</P><P>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.</P><P>Either method seems to be not optimal since I don't benefit from 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.</P><P>Also, I notice that there might be performance differences between column and row permutations depending on whether the matrix is in csr or csc.</P><P>Is there a better way to do it?</P>Tue, 08 Oct 2019 18:48:11 GMThttps://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176366#M28969Robert_E_2019-10-08T18:48:11ZHi Robert,
https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176367#M28970
<P>Hi Robert,</P><P>I don't see any faster way in MKL than using something like spmm (or sp2m) right now. </P><P>Do you want to permute the rows, columns or rows and columns?</P><P>What do you mean by performance difference, could you please elaborate?</P><P>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 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 permute the intermediate vector (A*v).</P><P>Another thing is that if you want to compute PAP^T with symmetric A, you can use mkl_sparse_?_sypr to avoid forming the intermediate product.</P><P>Best,<BR />Kirill</P>Thu, 10 Oct 2019 03:19:59 GMThttps://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176367#M28970Kirill_V_Intel2019-10-10T03:19:59ZRobert, could you try to
https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176368#M28971
<P>Robert, could you try to submit the official Feature Request to the Intel<A href="https://supporttickets.intel.com/?lang=en-US"> Online Service Center</A>? </P>Thu, 10 Oct 2019 04:16:03 GMThttps://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Permutation-of-a-large-sparse-matrix/m-p/1176368#M28971Gennady_F_Intel2019-10-10T04:16:03Z