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

Using Colamd with Pardiso

damienhocking
New Contributor I
282 Views
Hi all,

I was wondering if anyone has used Colamd with Pardiso. Given that colamd is a column reordering and Pardiso is a row-ordered solver this might be slow because the matrix would have to be reordered into column form. Anyone tried this? I'm trying Scotch out right now as well.

Damien
0 Kudos
4 Replies
ArturGuzik
Valued Contributor I
282 Views
Quoting - damienhocking
Pardiso is a row-ordered solver this might be slow because the matrix would have to be reordered into column form.
Damien,

what do you mean by that?

A.
0 Kudos
damienhocking
New Contributor I
282 Views
Quoting - ArturGuzik
Damien,

what do you mean by that?

A.

Pardiso requires the matrix in row-major format. Colamd requires the matrix in column-major format. There would need to be a reordering pass and a separate structure stored to map the reordering back to row-major.

This is starting to look like more CPU work than it could be worth.
0 Kudos
Gennady_F_Intel
Moderator
282 Views
Quoting - damienhocking

Pardiso requires the matrix in row-major format. Colamd requires the matrix in column-major format. There would need to be a reordering pass and a separate structure stored to map the reordering back to row-major.

This is starting to look like more CPU work than it could be worth.

Damien,

Yes, it will require more CPU work, however we don't expect the visible slowdown of PARDISO.

The slowdown will be negligible especially for the big problem sizes.

--Gennady
0 Kudos
damienhocking
New Contributor I
282 Views

Damien,

Yes, it will require more CPU work, however we don't expect the visible slowdown of PARDISO.

The slowdown will be negligible especially for the big problem sizes.

--Gennady

I have a client with some difficult and badly-scaled matrices from their simulation environment. With some careful scaling in my nonlinear solver, the parallel METIS ordering is doing a good enough job and Pardiso solves everything now with good speedups on multicores.

Damien
0 Kudos
Reply