[petsc-dev] Should -pc_type mg be a linear preconditioner by default?

Jed Brown jedbrown at mcs.anl.gov
Thu Oct 27 17:38:46 CDT 2011


So in response to this discussion, and since we need to do something, I
propose a few changes. If you disagree with any of these defaults, please
speak up and suggest alternatives.

1. Change Chebychev to be configured as a smoother by default, effectively
-ksp_chebychev_estimate_eigenvalues 0,0.1,0,1.1. Users with a priori
information about eigenvalues should know it and be willing to change the
defaults. I think the vast majority of user want cheby to be a smoother
instead of a solver.

2. Have -pc_type mg use cheby(1) as the ksp by default. Note that this is
quite a bit more setup than richardson or gmres, but more robust than
richardson and many fewer dot products (assuming a nontrivial number of
iterations) than GMRES.

3. Use -mg_levels_pc_type pbjacobi as the preconditioner for cheby when the
system is symmetric. When non-symmetric, use -mg_levels_pc_type sor.



This makes the V-cycle linear by default. For symmetric problems, this
configuration is also the same algorithm is serial and in parallel.

Barry, you had a suggestion for not throwing away the work done by GMRES
when estimating eigenvalues. Can you do that and still have a linear method?

Since GMRES stores the Krylov basis, it seems to me that it should be
possible to reconstruct the Chebychev polynomial after running a few cycles
of GMRES, so that would be a different way to not throw away work done in
setup.

There are ways to do several cycles of GMRES, do a bunch of dot products
with one MPI_Allreduce, and then orthogonalize the subspace in one shot.
That would be handy here because Cheby setup will cost a lot of reductions
if there are many levels.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20111027/c65b3cde/attachment.html>


More information about the petsc-dev mailing list