[Trilinos-Users] AztecOO Convergence
Mike Heroux
maherou at sandia.gov
Mon Nov 21 13:21:22 MST 2005
Ammar,
Note that, if your matrix is singular, then there are two basic
possibilities:
1) Your right-hand-side b is in the range of the operator A. In other
words, there is an x such that A*x = b. Furthermore, there are many vectors
that are solutions, since any vector y from the null space of A can be added
to x and A(x+y) = b. If you are getting two solutions to your problem in
this case, say x1 and x2, and both have a small residual (norm(b-A*x1) and
norm(b-A*x2) are both small) then you might check the norm of A*(x1-x2). If
this value is small, then x1 and x2 are two particular solutions to the
singular problem and x1-x2 is a vector in the null space of A.
2) Your right-hand-side b is not in the range of A. Then there is NO x such
that A*x = b. This second case can happen in a partial way due to floating
point arithmetic errors. In these cases, b may be analytically in the range
but numerically slightly out of the range. This might explain why you
cannot get your error below a certain tolerance.
If you are using unpreconditioned GMRES, there is little chance that you are
getting two wildly different particular solutions, so if you are seeing very
different results on 1 and 2 processors, it suggests a coding error (at
least to me).
Mike
> -----Original Message-----
> From: trilinos-users-bounces at software.sandia.gov
> [mailto:trilinos-users-bounces at software.sandia.gov] On Behalf
> Of Ammar T. Al-Sayegh
> Sent: Monday, November 21, 2005 1:59 PM
> To: trilinos-users at software.sandia.gov
> Subject: Re: [Trilinos-Users] AztecOO Convergence
>
> Randal,
>
> Thank you for the elaborate explanation. Your reasoning makes
> sense, and I tried to follow your advice and disable the
> preconditioner. However, I got hit by another issue. Now it
> says that my GMRES Hessenberg matrix is ill-conditioned,
> which perhaps is right because I'm dealing with nonlinear
> analysis of a structure that's reaching instability, i.e.
> having it's stiffness matrix getting close to being singular.
> The thing that I can't make sense of, though, is that why it
> works fine just fine with a single processor but not with two
> processors even when preconditioner is disabled?
>
> I don't mind the additional time cost if there is a way to
> get the same level of numerical accuracy of when using
> multiple processors as in the case with a single processor.
>
>
> -ammar
>
>
> ----- Original Message -----
> From: "Randall Bramley" <bramley at cs.indiana.edu>
> To: "Ammar T. Al-Sayegh" <alsayegh at purdue.edu>
> Cc: <trilinos-users at software.sandia.gov>
> Sent: Monday, November 21, 2005 11:01 AM
> Subject: Re: [Trilinos-Users] AztecOO Convergence
>
>
> >
> >> In AztecOO, why does convergence deteriorate as the number
> >> of processors is increased?
> >
> > At last, a question I can answer. :-)
> >
> > The preprocessing is usually block diagonal, and as the number of
> > processors increases, the blocks become smaller - in the limit, the
> > preconditioner becomes diagonal scaling. Fewer processors leads to
> > the block becoming larger, in the limit becoming an incomplete
> > factorization on the whole matrix. This is generally a more
> > accurate preconditioner since it brings in more
> off-diagonal elements
> > and hence accounts for longer-range interactions in the
> linear system.
> >
> > So it's normal to have the quality of preconditioning lower
> (and hence
> > number of iterations higher) when the number of processors
> increases.
> >
> >> Is there any options one can use to eliminate this problem?
> >>
> >> Are there any particular solvers which will yield same
> >> convergence regardless of the number of processors?
> >
> > Yes, but they are not good ones to choose: use no preconditioning or
> > just diagonal scaling. But you're likely to find the wall clock
> > time increases over letting the number of iterations increase.
> >
> > -Randall Bramley
> >
>
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at software.sandia.gov
> http://software.sandia.gov/mailman/listinfo/trilinos-users
>
More information about the Trilinos-Users
mailing list