- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi, i'm a beginner with Pardiso in fortran.
is there a way to get information about the accuracy of the solution x when you do iterative refinement with iparm(8) < 0 (extended precision mode). can you get an estimate of something like |Ax - b|/b/ from Pardiso.
thank you for any help.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Bill,
I would like to know the formula and error tolerance used for the backward error check.
>>This is to kindly inform you that, the default check in iparm[7] uses the backward error |r|=|Ax_current - b|, not |delta_x| which is related to the forward error.
perhaps this could be documented and the error data and tolererance printed by pardiso when msglvl = 1.
>> Sure, Thanks for sharing with us the feedback. We have informed the concerned team and will update you.
Best Regards,
Shanmukh.SS
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
sorry typo, should be |Ax - b|/|b|
| | = norm and x = computed solution to Ax = b
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Bill,
Thanks for posting on Intel Communities.
We would like to request you elaborate on your issue a bit as it helps us understand the issue better.
Best Regards,
Shanmukh.SS
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi ShanmukhS_Intel
i used the code example pardiso_sym_f90.f90 and changed iparm(8) = 10. running the code gives iparm(7) = 4, so 4 iterative refinement steps were done. using iparm(8) = -10 for extended precision also gives iparm(7) = 4 for this example.
what i want to know is how does pardiso decide when to stop iterative refinement.
is it based on the change in the solution x at each iterative refinement step, something like |delta_x|/|x_current| or something like what i suggested: |Ax_current - b|/|b|, so |Ax_current - b| is the norm of the current residual or something else.
the documetation doesn't say anything about this. can the user get any information from pardiso about the achieved accuracy, like |delta_x|/|x_current| or |Ax_current - b|/|b| or something similar .
thank you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Bill,
Thanks for the elaboration on your required details.
The maximum number of iterative refinement steps that the solver performs. The solver performs not more than the absolute value of iparm[7] steps of iterative refinement. The solver might stop the process before the maximum number of steps if
- a satisfactory level of accuracy of the solution in terms of backward error is achieved,
- or if it determines that the required accuracy cannot be reached. In this case the solver returns -4 in the error parameter.
The number of executed iterations is reported in iparm[6].
Best Regards,
Shanmukh.SS
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Bill,
A gentle reminder:
It had been a while since we heard back from you. Could you please let us know if you need any other information?
Best Regards,
Shanmukh.SS
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi Shanmukh.SS
sorry for delay - had trouble with account.
you wrote iterative refinement stops when
* a satisfactory level of accuracy of the solution in terms of backward error is achieved
i would like to know the formula and errror tolerance used for the backward error check. perhaps this could be documented and the error data and tolererance printed by pardiso when msglvl = 1.
thank you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Bill,
I would like to know the formula and error tolerance used for the backward error check.
>>This is to kindly inform you that, the default check in iparm[7] uses the backward error |r|=|Ax_current - b|, not |delta_x| which is related to the forward error.
perhaps this could be documented and the error data and tolererance printed by pardiso when msglvl = 1.
>> Sure, Thanks for sharing with us the feedback. We have informed the concerned team and will update you.
Best Regards,
Shanmukh.SS
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi Shanmukh.SS
thank you for accepting my suggestion, i look forward to the changes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Bill,
Sure! Thanks for accepting. If you need any additional information, please post a new question as this thread will no longer be monitored by Intel.
Have a great day!
Best Regards,
Shanmukh.SS
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page