Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library
- Pardiso iparm(30) not returning equation number correctly

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

schulzey

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-22-2017
07:22 PM

143 Views

Pardiso iparm(30) not returning equation number correctly

Refer to the Pardiso documentation as follows:

If Intel MKL PARDISO detects zero or negative pivot for mtype=2 or mtype=4 matrix types, the factorization is stopped, Intel MKL PARDISO returns immediately with an error = -4, and `iparm(30)` reports the number of the equation where the first zero or negative pivot is detected.

Link Copied

6 Replies

Zhen_Z_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-22-2017
10:36 PM

143 Views

Hi Schulzey,

For mtype=2 factorization, the pardiso choose Cholesky decomposition. For those factorization using Gaussian elimination required to have positive pivot elements. If the matrix A is singular matrix, det(A)=0, it means there would be no solution or have countless results for factorization. To eliminate singularity, you probably could refer SVD.

Best regards,

Fiona

schulzey

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-23-2017
08:15 AM

143 Views

Our application is structural engineering where a singularity in the stiffness matrix represents an instability in the structure. Usually the location of instabilities are unknown and so the iparm(30) value helps the engineer to find where the instability is. In the version of Pardiso shipped with MKL 2017 Update 2, it always returns iparm(30)=1 whenever a singularity occurs, whereas previously it returned the location of the first singularity found (even though there might be more than one). Returning iparm(30)=1 makes it impossible for the engineer to find the instability, plus it no longer complies with the Pardiso documentation as per my original post. Can this be fixed?

Regards, Peter

Zhen_Z_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-28-2017
12:33 AM

143 Views

Hi schulzey,

I am not very clear with your problem, I tested both MKL11.3.3 & MKL2017u3, iparm[30] returns same value that is no. of equation which firstly detected 0 or negative pivots, which version of MKL you get that the iparm[30] is not no. of equation? Could you please provide your input matrix?

The positive definition matrix must be not a singular matrix, if your matrix is singular, you probably could set phase to 11(reordering process), and it would return error:

*** Error in PARDISO ( numerical_factorization) error_num= -1

*** Error in PARDISO: zero or negative pivot, A is not SPD-matrix

Best regards,

Fiona

schulzey

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-28-2017
02:34 AM

143 Views

Hi Fiona,

I'm using MKL 2017 Update 2. I haven't had time to test 2017 Update 3 but I will try it and let you know if the problem persists.

Peter

schulzey

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-08-2017
03:33 AM

143 Views

Hi Fiona,

I have tested MKL 2017u3 and it has the same problem. I have also found that the problem only occurs with some matrices whereas others work Ok. I have attached a project with a test matrix that shows the problem. In MKL2017u3 my test matrix returns iparm(30)=1 which is incorrect, however if I run the same matrix with MKL 11.2.4 it returns iparm(30)=49 which is correct.

It looks like something has changed since MKL 11.2.4.

Regards,

Peter

schulzey

New Contributor I

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

09-16-2017
01:22 AM

143 Views

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

For more complete information about compiler optimizations, see our Optimization Notice.