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 error -3 (reordering problem)

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

michel_lestrade

Beginner

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

05-19-2011
11:05 AM

226 Views

PARDISO error -3 (reordering problem)

Tried to post this yesterday without success. Hopefully, this won't end up as a double post.

I am having trouble using PARDISO code that previously worked successfully for asymmetric matrices and that I am now applying to symmetric marices. The error returned indicates a reordering problem (-3) but that does not tell me much. From what I can tell, the output of mkl_dcsrcoo satisifies the requirements for PARDISO if I give use the upper half of the matrix in my original COO format. The error persists if I try various values of iparm(2).

Is there something I am not getting about the storage requirements for symmetric matrices ? Attached is a sample program reproducing the error with ifort version 12.0.2.154 Build 20110112.

Thanks.

Michel Lestrade

1 Solution

Sergey_Solovev__Inte

New Contributor I

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

05-24-2011
04:14 AM

226 Views

Hi, Michel,

Actually both for unsymmetric (mtype=11,13) and structurally symmetric matrices (mtype=1,3) you should set full input matrix. Upper triangular part is appropriate for symmetric matrices (mtype=2,-2,4,-4 and 6). So, please use the following code:

*integer:: n=4,nz=10integer:: jrn(10), jcn(10)doubleprecision:: matA_coo(10).jrn = (/1,2,3,4,1,2,3,2,3,4/)jcn = (/1,2,3,4,2,3,4,1,2,3/)matA_coo = (/1.0d0,2.0d0,3.0d0,4.0d0,5.0d0,6.0d0,7.0d0,5.0d0,6.0d0,7.0d0/)*

Best regards,

Sergey Solovev

Link Copied

5 Replies

Sergey_Solovev__Inte

New Contributor I

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

05-24-2011
04:14 AM

227 Views

Hi, Michel,

Actually both for unsymmetric (mtype=11,13) and structurally symmetric matrices (mtype=1,3) you should set full input matrix. Upper triangular part is appropriate for symmetric matrices (mtype=2,-2,4,-4 and 6). So, please use the following code:

*integer:: n=4,nz=10integer:: jrn(10), jcn(10)doubleprecision:: matA_coo(10).jrn = (/1,2,3,4,1,2,3,2,3,4/)jcn = (/1,2,3,4,2,3,4,1,2,3/)matA_coo = (/1.0d0,2.0d0,3.0d0,4.0d0,5.0d0,6.0d0,7.0d0,5.0d0,6.0d0,7.0d0/)*

Best regards,

Sergey Solovev

michel_lestrade

Beginner

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

05-24-2011
10:48 AM

226 Views

Thanks for pointing out the difference between structurally symmetric and symmetric.

My intention is to benchmark PARDISO using the best possible settings so as to get a fair comparison to other solvers. The target data this time is in the MatrixMarket format which store only half of the matrix when it is symmetric. Which will be faster (in general): expanding the data as above or switching to mtype=-2 ?

I am pretty sure I cannot use mtype=2 since I do not know ahead of time if the matrix is positive definite or not: that kind of information is not in the banner header of the MatrixMarket format. The other types are not relevant for me since we are sticking to real-valued problems for the time being.

Thanks.

Michel Lestrade

Crosslight Software

Konstantin_A_Intel

Employee

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

05-24-2011
11:01 AM

226 Views

Please use mtype=-2 for symmetric matrices if you don't know either it's positive definite or indefinite. In general, it should be faster than to solve symmetrical matrix as unsymmetrical.

Regards,

Konstantin

michel_lestrade

Beginner

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

05-27-2011
11:57 AM

226 Views

Following up on my own question for a related problem. What about skew-symmetric matrices ? That is Aij=-Aji with the diagonal equal to zero: that is the last matrix type from the Matrix Market format I have to consider.

Once expanded to full storage, shouldn't this matrix type work with m_type=1 since it has pattern symmetry ? However, I get this -3 error again and I am forced to fall back to m_type=11 to make it work.

Attached is a new version of my test program to demonstrate the problem.

Sergey_Solovev__Inte

New Contributor I

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

05-30-2011
05:04 AM

226 Views

There are some restrictions for symmetric and unsymmetric matrices. One of them is:

"No diagonal element can be omitted from the `values` array for any symmetric or structurally symmetric matrix."

This restriction implies that if symmetric or structurally symmetric matrices have zero diagonal elements, then they must be explicitly represented in the `values` array. (See Sparse Matrix Storage Formats part in MKL manual.)

So, you should add zero elements into the diagonal.

- 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.