Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

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

Jeremie_V_
Beginner
302 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
302 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

 

0 Kudos
Alexander_K_Intel2
302 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

0 Kudos
Jeremie_V_
Beginner
302 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

0 Kudos
Gennady_F_Intel
Moderator
302 Views

yes, exactly

0 Kudos
Jeremie_V_
Beginner
302 Views

Thank you!

Jeremie

0 Kudos
Reply