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

MKL solver using skyline storage

rico_caldeira
Beginner
787 Views
I have some doubts on how to use mkl solver with skyline scheme for storing matrix A.
As i have seem at some examples, the user must specify if its storing upper or lower triangular part of matriz A. Then is possible to solve the problem easily as i have seem, but it seems to neglect the other part of matrix (ex.: If you choose the upper scheme, the lower part is simply neglect).
However, i have a problem where the matrix A is symmetric and i am just storing the upper part of this matrix using skyline scheme. As its symmetric, obviously, storing the lower part gives the same thing.
The question is: Can i solve this problem where A is symmetric, storing only the triangular part of A, without neglecting the other contribuition? If yes, how do i specify that?
0 Kudos
4 Replies
ArturGuzik
Valued Contributor I
787 Views
Quoting - rico_caldeira
I have some doubts on how to use mkl solver with skyline scheme for storing matrix A.
As i have seem at some examples, the user must specify if its storing upper or lower triangular part of matriz A. Then is possible to solve the problem easily as i have seem, but it seems to neglect the other part of matrix (ex.: If you choose the upper scheme, the lower part is simply neglect).
However, i have a problem where the matrix A is symmetric and i am just storing the upper part of this matrix using skyline scheme. As its symmetric, obviously, storing the lower part gives the same thing.
The question is: Can i solve this problem where A is symmetric, storing only the triangular part of A, without neglecting the other contribuition? If yes, how do i specify that?
Hi,

I'm not entirely sure what you intend to do and also I might be wrong but .... the skyline storage in MKL can only store triangular matrix (as you already tried/mentioned), which means it can't handle the non-symmetric matrix (or I'm very wrong on that, I believe old CXML was able to do this). To use MKL sparse solvers you'll need to convert/store your matrix to supported format (CSR). You can use mkl_ddnscsr to produce that.
Note that skyline format is supported for Sparse BLAS level 2 and 3. So you need to call mkl_?skysm routine(s), specifying 'S' for matdescra, allowing it to recognize that your matrix is symmetric.

A.
0 Kudos
rico_caldeira
Beginner
787 Views
Quoting - ArturGuzik
Hi,

I'm not entirely sure what you intend to do and also I might be wrong but .... the skyline storage in MKL can only store triangular matrix (as you already tried/mentioned), which means it can't handle the non-symmetric matrix (or I'm very wrong on that, I believe old CXML was able to do this). To use MKL sparse solvers you'll need to convert/store your matrix to supported format (CSR). You can use mkl_ddnscsr to produce that.
Note that skyline format is supported for Sparse BLAS level 2 and 3. So you need to call mkl_?skysm routine(s), specifying 'S' for matdescra, allowing it to recognize that your matrix is symmetric.

A.


Hi,
In fact, i am using skyline storage to take advantage cause my matrix is symmetric.
Ill try to convert my matrix to format CSR to see if i can solve well my problem. But i dont believe that performance will be great cause doing this i am introducing one more work to my program.
By the way, trying to set matdescrasspecifying 'S' is what i was doing without any success. Doing this the program return a parameter error on MKL and, because of this i think i doesnt solves symmetric matrix with skyline storage.
Thank you anyway, ill try to convert to CSR and give a feed back.

0 Kudos
ArturGuzik
Valued Contributor I
787 Views
But you can take advantage of the fact your matrix is symmetric also in CSR. See examples in help. The storage scheme is very efficient.

You're right that you will get a performance hit trying to convert from matrix. Can you just generate it in desired format (without converting)?

Later I will try to come up with an example of skyline storage solution using SBLAS.

A.
0 Kudos
rico_caldeira
Beginner
787 Views
Quoting - ArturGuzik
But you can take advantage of the fact your matrix is symmetric also in CSR. See examples in help. The storage scheme is very efficient.

You're right that you will get a performance hit trying to convert from matrix. Can you just generate it in desired format (without converting)?

Later I will try to come up with an example of skyline storage solution using SBLAS.

A.


Hi,
My experience was successfull on converting skyline storage to CSR storage and solving the problem taking advantage that the matrix is symmetric (with pardiso routines).
My old serial program was solving the problem using skyline storage and cholesky factorization.
On this new program, my first test was much faster using mkl library routines with 4 processors.
Ill try now to do a bigger example to test speedup. Unfortunately, to make a data archive ill have some hard work.
Thank you anyway.

0 Kudos
Reply