Increasing convergence rate

Jed Brown jed at
Thu Jan 15 03:29:09 CST 2009

On Wed, Jan 14, 2009 at 20:04, jerome ho <jerome.snho at> wrote:
> boomeramg+minres: 388MB in 1min (8 iterations)
> icc+cg: 165MB in 30min  (>5000 iterations)
> bjacobi+cg: 201MB in 50min (>5000 iterations)

Note that in serial, bjacobi is just whatever -sub_pc_type is (ilu by
default).  In parallel, it's always worth trying -pc_type asm as an
alternative to bjacobi.  You can frequently make the incomplete
factorization stronger by using multiple levels (-pc_factor_levels N),
but it will use more memory.  It looks like multigrid works well for
your problem so it will likely be very hard for a traditional method
to compete.

To reduce memory usage in BoomerAMG, try these options

  -pc_hypre_boomeramg_truncfactor <0>: Truncation factor for
interpolation (0=no truncation) (None)
  -pc_hypre_boomeramg_P_max <0>: Max elements per row for
interpolation operator ( 0=unlimited ) (None)
  -pc_hypre_boomeramg_agg_nl <0>: Number of levels of aggressive
coarsening (None)
  -pc_hypre_boomeramg_agg_num_paths <1>: Number of paths for
aggressive coarsening (None)
  -pc_hypre_boomeramg_strong_threshold <0.25>: Threshold for being
strongly connected (None)

For 3D problems, the manual suggests setting strong_threshold to 0.5.

It's also worth trying ML, especially for vector problems.


More information about the petsc-users mailing list