Pardiso.jl icon indicating copy to clipboard operation
Pardiso.jl copied to clipboard

Should iterative refinement be opt-in?

Open ViralBShah opened this issue 4 years ago • 4 comments

It seems like iterative refinement is the default. https://github.com/JuliaSparse/Pardiso.jl/blob/81c8391e86cebaf71e936363664d878b22b1fd9a/src/Pardiso.jl#L242

Discussion on iterative refinement for Julia sparse solvers: https://github.com/JuliaLang/julia/issues/31105#issuecomment-465030232

cc @andreasnoack

ViralBShah avatar Dec 14 '20 19:12 ViralBShah

cc @ranjanan

ViralBShah avatar Dec 14 '20 20:12 ViralBShah

According to https://software.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-fortran/top/sparse-solver-routines/onemkl-pardiso-parallel-direct-sparse-solver-interface/onemkl-pardiso-parameters-in-tabular-form.html, it looks like 23 corresponds to just factorization + solve? Only 33 is iterative refinement.

ranjanan avatar Dec 14 '20 20:12 ranjanan

It seems that the intel table that @ranjanan links above is not consistent with pardiso params.

According to the pardiso params, parameter 13 is Analysis, numerical factorization, solve, iterative refinement. In fact, I can't quite tell if there is an easy way to solve without refinement.

ViralBShah avatar Dec 14 '20 22:12 ViralBShah

Just my 2ct: yes, iterative refinement should be opt-in. May be we want to do e.g. iterative refinement with IterativeSolvers, or the solution is part of a bigger block preconditioner...

With pardiso, setting iparm[8]=0 should prevent iterative refinement unless pivot perturbation was activated.

j-fu avatar Apr 10 '21 20:04 j-fu