[petsc-dev] [petsc-maint #154101] clarification of FP error thrown in VECNORM in 3.3 PETSc
Jed Brown
jedbrown at mcs.anl.gov
Fri Feb 22 20:40:05 CST 2013
On Fri, Feb 22, 2013 at 6:19 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> Ok, I did a search through the code to see where we are checking it.
>
> 1) VecNorm, VecDot, VecMDot -- and generate an error
>
Yeah, I never liked this.
>
> 2) Many of the Krylov solvers and nonlinear solvers check the results
> of (most - should be all) norms and dots and either
>
> a) generate a not converged KSP or SNES converged reason (good)
>
> b) generate an error (bad, most do this).
>
We want the solvers to have an option to raise an error because it helps
users track down where they made a mistake (especially if they're running
in a shitty environment where -fp_trap and gdb doesn't work nicely). I'm
not sure which should be the default.
>
> Note that currently the checks in the solvers are redundant because
> an error was already generated in the VecNorm, Dot or MDot so NaN never
> gets to the iterative solver
>
> 3) Few other irrelevant places.
>
> The simplest thing would be to simply remove the checks in 1). Then,
> eventually, update all the solvers to NOT generate an error but instead
> return with
> an appropriate diverged reason. The drawback is that other code using dots
> and norms will always chug along without generating an error if users don't
> check the results themselves.
>
I think this is an event that the caller should deal with since only they
have enough context to return cleanly. Yes, it's more code, but it's the
right thing.
> I vote we just make a patch in 3.3 to remove the checks in norm, dot,
> mdot and Jed adds another project to the bitbucket list saying upgrade the
> checks in the solvers to return with appropriate diverged reason instead of
> generating an error. Then the whole flag business goes away.
That's fine with me.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20130222/42ab8ff4/attachment.html>
More information about the petsc-dev
mailing list