Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
6590 Discussions

Order of the columns of a sparse matrix (CSR) times a vector

Jeremie_V_
Beginner
124 Views

Dear,

I need to multiply a symmetric sparse matrix by a vector and I would like to use the subroutine mkl_dcsrsymv . The upper triangle of the sparse matrix is stored in a CSR format (row major, 3 arrays). However, the elements in the array columns (ja) are not placed in the order in which the associated values occur in the row. 
I know that the order is required for MKL Pardiso, but is it also the case for the subroutine mkl_dcsrsymv? Are unordered columns within a row allowed? What are the consequences?

In advance thank you.

Jeremie

0 Kudos
5 Replies
Zhen_Z_Intel
Employee
124 Views

Dear customer,

For sparse symmetric matrix calculation, The CSR format could only save up-triangular part to calculate. It is called DSS Symmetric Matrix Storage ,you could refer similar structure format for PARDISO. The csrsymv could also use with DSS symmetric format. 

Best regards,
Fiona

 

Alexander_K_Intel2
124 Views

Hi,

You are correct in the fact that pardiso use ordered csr format. By the way spblas routine have not such restriction so you can use not ordered arrays. Also i recommend you to use new spblas API for your operation - in general it perform better

Thanks,

Alex

Jeremie_V_
Beginner
124 Views

Dear,

Thank you for you answers.

@Alex, When you mentioned the "new spblas API", do you refer to the Inspector-Executor Sparse Blas routines?

Thank you.

Jeremie

Gennady_F_Intel
Moderator
124 Views

yes, exactly

Jeremie_V_
Beginner
124 Views

Thank you!

Jeremie

Reply