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

Change in behavior of Pardiso and Sparse Cluster Solver for symmetric indefinite matrices

Marcos_V_1
New Contributor I
604 Views

Hi, we are testing the latest OneAPI 2025.0 and noted that our calculations (fortran code) for indefinite symmetric Poisson matrices are not being solved correctly either by Pardiso or cluster sparse solver. Now we just get a zero vector as solution regardless of the RHS provided.

These are solved correctly for OneAPI 2024.2.

 

Has something changed in the parameters needed to be input to deal with these matrices?

 

Thank you,

 

Marcos

0 Kudos
1 Solution
Fengrui
Moderator
335 Views

We changed the behavior of iterative refinement (iparm(8)) in oneMKL 2025.0. In the sample code, right before entering phase 33, iparm(8) is set to 0. It will turn off the iterative refinement, while in prior releases, this setting will perform two steps of iterative refinement when there are perturbed pivots. So to get the same behavior as in 2024.2, you could change the value of iparm(8) from 0 to 2, or simply comment that line out. 

Another finding is that if turning off scaling (iparm(11)) and matching (iparm(13)), similar results are also obtained, even with iparm(8)=0. But one potential issue here is that we might not expect all-zero solutions in this case, even with iparm(8)=0, iparm(11)=1 and iparm(13)=1. We are doing further investigation on this behavior. 

Thanks,

Fengrui

View solution in original post

0 Kudos
9 Replies
Marcos_V_1
New Contributor I
588 Views

I added an issue in our software repository here: https://github.com/firemodels/fds/issues/13784

0 Kudos
Marcos_V_1
New Contributor I
529 Views

This is a standalone reproducer of the bug using CLUSTER_SPARSE_SOLVER on a single MPI process and symmetric indefinite sparse matrix of  size 64^2.

Follow the README in the tarball to compile and reproduce the issue with MKL 2025.0 in Linux. For sizes of matrices smaller then 2000^2 it gives a zero solution no matter what is the RHS.

The issue is seen in both PARDISO and CLUSTER_SPARSE_SOLVER in Windows and Linux with latest OneAPI 2025.0.1.

Please let us know if you can reproduce the issue.

 

Thank you,

Marcos

 

0 Kudos
Marcos_V_1
New Contributor I
408 Views

Hi, has anyone been able to reproduce the issue with PARDISO/CPARDISO I posted? It is very important for us to get this sorted as it does affect our continuous integration process.

Thank you for your time!

Marcos

0 Kudos
Fengrui
Moderator
382 Views

Hi Marcos,

 

Thank you for posting in the forum!

I can reproduce this issue on my side. I will dig more into it and get back to you soon.

 

Thanks,

Fengrui

0 Kudos
Marcos_V_1
New Contributor I
373 Views

Thank you Fengrui, let me know if you need anything else from us.

Regards,

Marcos

0 Kudos
Fengrui
Moderator
336 Views

We changed the behavior of iterative refinement (iparm(8)) in oneMKL 2025.0. In the sample code, right before entering phase 33, iparm(8) is set to 0. It will turn off the iterative refinement, while in prior releases, this setting will perform two steps of iterative refinement when there are perturbed pivots. So to get the same behavior as in 2024.2, you could change the value of iparm(8) from 0 to 2, or simply comment that line out. 

Another finding is that if turning off scaling (iparm(11)) and matching (iparm(13)), similar results are also obtained, even with iparm(8)=0. But one potential issue here is that we might not expect all-zero solutions in this case, even with iparm(8)=0, iparm(11)=1 and iparm(13)=1. We are doing further investigation on this behavior. 

Thanks,

Fengrui

0 Kudos
Marcos_V_1
New Contributor I
276 Views

Thank you Fengrui! Looks like that fixed the issue. It is interesting the having no iterative refinements IPARM(8)=0 gives the right solution for matrices over 2000 unknowns, but not for small matrices.

We'll run our CI tests tonight to do further testing.

Best,

Marcos

0 Kudos
Marcos_V_1
New Contributor I
179 Views

Thank you Fengrui for your advice. Switching iparm(8) to 2 explicitly took care of the issue we were seeing with MKL 2025.

Let me know about the other behavior you are noting.

Best Regards,

Marcos

 

0 Kudos
Fengrui
Moderator
156 Views

It's great that the issues are gone with the value change of iparm(8)!

We are still investigating the behavior that scaling and matching turning on and iterative refinement turning off would lead to trivial solution. We will update in this post once there is a conclusion. 

Thanks,

Fengrui

0 Kudos
Reply