Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
The Intel sign-in experience is changing in February to support enhanced security controls. If you sign in, click here for more information.
6680 Discussions

Qustion about PARDISO solve phase=33 part run-time.

Bosun_Hwang
Beginner
202 Views
Dear.

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
0 Kudos
7 Replies
Alexander_K_Intel2
202 Views
Hi,
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
Bosun_Hwang
Beginner
202 Views

Dear Kalinkin.

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

Alexander_K_Intel2
202 Views
Hi,

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
Bosun_Hwang
Beginner
202 Views
Thank you.

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


Regards.
B. Hwang
Alexander_K_Intel2
202 Views
Hi,

The iterative refinement needs to be done to improve accuracy of solution obtained by directCholesky algorithm.
With best regards,
Alexander Kalinkin
Bosun_Hwang
Beginner
202 Views

Thanks.

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

Alexander_K_Intel2
202 Views
Hi,
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.
Reply