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

Pardiso for interior point method

Beginner
583 Views

Hi all. I am writing an interior point algorithm for linear programming and trying to use Pardiso as the linear system solver. I am new to the Pardiso and have some questions:

- I want to apply Cholesky factorization for a matrix AA^T. CHOLMOD (a popular Cholesky factorization subroutine, but does not support multi-core computing) allows me to factorize AA^T without directly form the matrix AA^T, that is I can do something like 'cholesky(A, args)' and I don't need to compute AA^T. I wonder if Pardiso also supports this functionality? Or I must form the matrix AA^T by myself and then feed it to Pardiso?

- Does Pardiso support Cholesky-like factorization for symmetric quasi-definite matrices?

- It seems that Pardiso is widely used for interior point method. Is there any documentation available to understand how to use Pardiso for interior point method?

Best,

Huang Fang

1 Solution
Employee
525 Views

Hello!

PARDISO does not support the case when the input matrix is a symmetric product A A^T. So, to use PARDISO, you would need to create A*A^T as a CSR matrix (e.g. using mkl_sparse_syrk).

But, there is another approach using QR, and we have separate Sparse QR functionality on oneMKL. See, e.g. https://math.stackexchange.com/questions/2547431/cholesky-decomposition-for-aat.

You can compute QR of A^T and then A*A^T = RQ^T * QR = R^T R = your triangular decomposition as R is upper triangular. I am not sure, but it is possible this is exactly what happens in the original CHOLMOD by Tim Davis for A * A^T.

2) About interior point method, as @MRajesh_intel  mentioned, you can use matching and scaling, also change the pivoting strategy and play with iterative refinement (#steps and possibly extended precision residual computation).

I don't think we have a dedicated document at the moment which describes specificallythe knobs in PARDISO which can be used for interior point problems. It is just a question of increasing numerical stability while retaining solution accuracy which is regularly done for general badly conditioned problems (I guess your IP problems are of this kind as well).

Best,
Kirill

7 Replies
Moderator
539 Views

Hi,

>> Does Pardiso support Cholesky-like factorization for symmetric quasi-definite matrices?

Yes. Pardiso supports this functionality. The solver first computes a symmetric fill-in reducing permutation P based on either the minimum degree algorithm or the nested dissection algorithm from the METIS package (both included with Intel® oneAPI Math Kernel Library), followed by the parallel left-right looking numerical Cholesky factorization of PAPT = LLT for symmetric positive-definite matrices, or PAPT = LDLT for symmetric indefinite matrices.

https://software.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-c/top/sparse-solver-routines/onemkl-pardiso-parallel-direct-sparse-solver-interface.html

>>Is there any documentation available to understand how to use Pardiso for interior point method?

Use iparm[10] = 1 (scaling) and iparm[12] = 1 (matching) for highly indefinite symmetric matrices.

https://software.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-c/top/sparse-solver-routines/onemkl-pardiso-parallel-direct-sparse-solver-interface/pardiso-iparm-parameter.html

Thanks

Rajesh.

Beginner
528 Views

Employee
526 Views

Hello!

PARDISO does not support the case when the input matrix is a symmetric product A A^T. So, to use PARDISO, you would need to create A*A^T as a CSR matrix (e.g. using mkl_sparse_syrk).

But, there is another approach using QR, and we have separate Sparse QR functionality on oneMKL. See, e.g. https://math.stackexchange.com/questions/2547431/cholesky-decomposition-for-aat.

You can compute QR of A^T and then A*A^T = RQ^T * QR = R^T R = your triangular decomposition as R is upper triangular. I am not sure, but it is possible this is exactly what happens in the original CHOLMOD by Tim Davis for A * A^T.

2) About interior point method, as @MRajesh_intel  mentioned, you can use matching and scaling, also change the pivoting strategy and play with iterative refinement (#steps and possibly extended precision residual computation).

I don't think we have a dedicated document at the moment which describes specificallythe knobs in PARDISO which can be used for interior point problems. It is just a question of increasing numerical stability while retaining solution accuracy which is regularly done for general badly conditioned problems (I guess your IP problems are of this kind as well).

Best,
Kirill

Beginner
519 Views

Moderator
485 Views

Hi,

Regards

Rajesh.

Beginner
467 Views

Moderator
455 Views

Hi,

Thanks for the confirmation!

As this issue has been resolved, we will no longer respond to this thread.