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: different results each time I solve the same system

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

roper

Beginner

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

10-07-2010
12:50 AM

147 Views

PARDISO: different results each time I solve the same system

I am comparing several solvers, and while some ones give expected results, PARDISO keeps giving very different results each time I run the program, or even different results if I call it two consecutive times.

It happens mainly with large matrices (80000 rows, 1000000 nonzeros) while other tests I made with very small matrices (eg: 5x5) give correct results.

With some settings it even crashes.

I mainly use default options for iparm.

I also tried DSS interface, and I get almost the same behavior.

Any idea ?

--

Rodrigo

Link Copied

12 Replies

Alexander_K_Intel2

Employee

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

10-07-2010
12:58 AM

147 Views

Try to check correctness of initial matrix data by matrix checker (set iparm[26]=1 in C or iparm(27)=1 in Fortran)

With best regards,

Alexander Kalinkin

roper

Beginner

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

10-07-2010
01:46 AM

147 Views

But I changed from:

setting all iparm to 0 except iparm(3) to the number of cores,

to

setting all iparm to 0 except iparm(1) to 1 and iparm(3) to the number of cores and iparm(27) to 1,

and now it gives a more-less correct solution with an estimated error of 0.6 %

Anyway, it still crashes with a symmetric matrix passed as unsymmetric...

--

Rodrigo

Gennady_F_Intel

Moderator

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

10-07-2010
01:55 AM

147 Views

that's not good idea to set all iparm to 0.

please try first to set iparm(1) == 0 then all items iparm(2)-iparm(64) are filled with default values.

what MKL version you use?

then iparm(3) is not releavant since version 10.2.

--Gennady

Alexander_K_Intel2

Employee

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

10-07-2010
02:04 AM

147 Views

Am I right that you try to solve matrix A by PARDISO with mtype=2 or -2 and mtype=11 with similar ia,ja? If so the solution must not be the same because for mtype 2 and -2 PARDISO needs only lower part of initial matrix. Also I need to underline that if you set iparm(0) = 0 than matrix checker wouldn't work because default iparm(27) = 0. If you want to turn it on you need to set iparm(1) = 1 and set other iparm manually.

With best regards,

Alexander Kalinkin

roper

Beginner

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

10-07-2010
02:28 AM

147 Views

I set all iparm to 0 before calling pardiso, anyway iparm should have some random values before is initialized, so it does not hurt setting it to 0, I think.

And yes, I did set iparm(1) = 1 and iparm(27) = 1

For mtype I use 6 and 13 because they are complex matrices.

For mtype=6 I pass only the UPPER part of the matrix, with diagonal included, as it is said in the manual. Do you say the LOWER part?

I am using now MKL version 10.2.5.035

In my last tests It worked for iparm(1) = 1; iparm(27) = 1 and symmetric (error: 1e-4 %) and crashed for unsymmetric,

and worked for iparm(1) = 0 and unsymmetric (but with an error of 5%) and crashed for symmetric.

--

Rodrigo

roper

Beginner

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

10-07-2010
02:51 AM

147 Views

Alexander_K_Intel2

Employee

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

10-07-2010
03:29 AM

147 Views

For unsymmetric case try to set iparm(10) not zero, for example 13, and turn on matching and scaling (iparm(11) and iparm(13) are equals 1).

For symmetric use iparm(1) = 1 and turn on matrix checker by iparm(27) = 1.

If in such cases you will get crash or NAN in output could you prepare testcase (example that we could execute to reproduce your problem) and upload it here?

With best regards,

Alexander Kalinkin

roper

Beginner

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

10-07-2010
04:20 AM

147 Views

With those parameters, it did not crash, and it did not give NaN.

For symmetric case, I computed an relative mean error of 0.0001% to 0.7%, which is relatively high,

and for unsymmetric case it gave from 6 to 9%, although this one was done with a symmetric matrix (with both upper and lower part) passed as unsymmetric.

(well, the errors were calculated on a postprocessed field)

But, should not PARDISO work well with default parameters ?

Alexander_K_Intel2

Employee

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

10-07-2010
06:39 AM

147 Views

PARDISO work well with default parameters. The one reason I've asked you to change default parameters is turn on matrix checker. Moreover, as I understood the problem with default parameters was only in simmetric case. Is matrix checker helped to resolved the problem?

With best regards,

Alexander Kalinkin

roper

Beginner

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

10-07-2010
07:07 AM

147 Views

--

Rodrigo

mecej4

Black Belt

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

10-07-2010
09:08 AM

147 Views

barragan_villanueva_

Valued Contributor I

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

10-11-2010
05:00 AM

147 Views

Could you please check that all gotten results in fact are consistent or not?

So, do you consider that

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