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

In our case, PARDISO solve phaseloginformation shows below,

Time solve : 0.022912 s

Time total : 0.080525 s total - sum:0.057613 s

I accepted Time solve as CPU time, and Total time as Elapse time.

I don't know why Time solve and Time total are so different.

Are there any method to reduce of the time difference?

I mean I want to know,

are there any methods to reduce the Time total.

And I want to get the PARDISO multiple RHS C code example.

regards.

B. Hwang

Link Copied

7 Replies

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

Solving step of PARDISO calculate solution of system Ax=b and some iterative refinement of calculated solution to obtain better result. So total time in your case is time to direct solve (0.022) + time to iterative refinement (0.057).

The example of PARDISO with multiple RHS could be obtained from any example of PARDISO with 1 rhs in MKL example folder: it is need to change variable nrhs from 1 to 5 (for example) and increase size of arrays b and x (rhs and solution arrays correspondingly) in 5 times. The resulted example provide solution system of linear equations with 5 rhs by PARDISO.

With best regards,

Alexander Kalinkin

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

Thank you for your reply.

So, is it possible to reduce the iteration number at the iterative refinement step.

I want to compare the results according to interation number.

Ifthe resultis acceptable, I want to reduce the interation number

to reduce total run time.

And I already tried to your advise to apply multiple RHS.

But core dump error was generated at PARDISO function.

I will try again.

Thank you.

Regards.

B. Hwang

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

You can set maximum number of iterative refinement and obtain resulted number of iteration using iparm[7] and iparm[6] correspondingly.

What about dump in PARDISO with many rhs: check size of arrays x and b, it must be (n*NRHS), where n is size of problem, NRHS - number of right hand side.

With best regards,

Alexander Kalinkin

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

But, I don't understand why such direct solver needs the iterative refinement step?

Regards.

B. Hwang

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

The iterative refinement needs to be done to improve accuracy of solution obtained by directCholesky algorithm.

With best regards,

Alexander Kalinkin

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

What is the error rate whether it is applied or not?

Do you have a statistic result about that?

In our case, it is negligible.

Regards.

B. Hwang

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

Theiterative refinement could be turn on/off by using iparm(8). If during numerical factorization perturbed pivots are obtained (for example when initial matrix non positive define) 2 steps of iterative refinements calculate cause to improve onbtained iteration. If there are not any perturbed pivots you can decline iterative refinemts by setting iparm(8) = 0.

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