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

Barry Smith bsmith at mcs.anl.gov
Thu Oct 27 19:14:57 CDT 2011


On Oct 27, 2011, at 5:38 PM, Jed Brown wrote:

> 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.
> 
    Why not use Eisentat trick SOR with Chebychev? Much cheaper than SOR plus separate Matrix vector productions. In fact why not do that also in the symmetric case?

> 
> 
> 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?
 
  Not that I know of. 
> 
> 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.




More information about the petsc-dev mailing list