I am using MKL c++ version to solve for pardiso. My input is a sparse matrix in the coordinate format and I am planning to convert it to CSR format to use the pardiso command with mkl_?csrcoo. The problem is that The conversion does not order the column indices, even though I specified job = 2; . Also, I have some zero values and duplicate enrtires in the coordinate sparse matrix. So I do not know if that is why it is unable to do the conversion correctly or not. I tried duplicate values on the mkl example and it worked fine. Please advise as what should be done. Thank you and have a great one.
Which version of MKL you are using? You tried "mkl example and it worked fine", but your routine using mkl_?csrcoo didn't work? If so, can you provide your code? Thanks!
As you can see at https://software.intel.com/en-us/node/599837, in the sparse BLAS coordinate storage format only non-zero elements are to be given explicitly. If your data does not conform to that requirement, the conversion routine mkl_?csrcoo may not work correctly.
There are some special cases where zero-valued diagonals are required to be stored explicitly (the DSS symmetric solvers, for example, with only the upper or lower triangle of the matrix stored). The conversion routine, however, has no provision for handling such special matrices.
I am getting an increasing order of column index per row, as it should , now. But I do have repeated values in the sparse coordinate format. As a result, the column index vector in the CSR format has repeated values. Does pardiso handle repeated values in the CSR format?