<div dir="ltr"><div>I'm solving a Poisson equation with BiCGStab/GAMG. I'm looking at KSPView and I see that the problem is not reducing the number of processors on the coarser grids. My coarse problem is 723x723, and it looks like it's still being solved on 192 processes. This doesn't seem right, and I'm believe this used to trigger processor reduction. I'm running with <br>
<br>-pres_ksp_type bcgsl -pres_pc_type gamg -pres_pc_gamg_threshold 0.05 -pres_mg_levels_ksp_type richardson -pres_mg_levels_pc_type sor -pres_mg_coarse_ksp_type richardson -pres_mg_coarse_pc_type sor -pres_mg_coarse_pc_sor_its 5 -pres_pc_gamg_type agg -pres_pc_gamg_agg_nsmooths 1 -pres_pc_gamg_sym_graph true -pres_ksp_monitor -pres_ksp_view -pres_gamg_process_eq_limit 5000<br>
</div><div><div><br><br></div><div>The KSPView output is:<br></div><div><br>KSP Object:(pres_) 192 MPI processes<br>  type: bcgsl<br>    BCGSL: Ell = 2<br>    BCGSL: Delta = 0<br>  maximum iterations=1000, initial guess is zero<br>
  tolerances:  relative=1e-06, absolute=1e-50, divergence=10000<br>  left preconditioning<br>  has attached null space<br>  using PRECONDITIONED norm type for convergence test<br>PC Object:(pres_) 192 MPI processes<br>  type: gamg<br>
    MG: type is MULTIPLICATIVE, levels=4 cycles=v<br>      Cycles per PCApply=1<br>      Using Galerkin computed coarse grid matrices<br>  Coarse grid solver -- level -------------------------------<br>    KSP Object:    (pres_mg_coarse_)     192 MPI processes<br>
      type: preonly<br>      maximum iterations=1, initial guess is zero<br>      tolerances:  relative=1e-05, absolute=1e-50, divergence=10000<br>      left preconditioning<br>      using NONE norm type for convergence test<br>
    PC Object:    (pres_mg_coarse_)     192 MPI processes<br>      type: sor<br>        SOR: type = local_symmetric, iterations = 5, local iterations = 1, omega = 1<br>      linear system matrix = precond matrix:<br>      Mat Object:       192 MPI processes<br>
        type: mpiaij<br>        rows=723, cols=723<br>        total: nonzeros=519221, allocated nonzeros=519221<br>        total number of mallocs used during MatSetValues calls =0<br>          using I-node (on process 0) routines: found 499 nodes, limit used is 5<br>
  Down solver (pre-smoother) on level 1 -------------------------------<br>    KSP Object:    (pres_mg_levels_1_)     192 MPI processes<br>      type: richardson<br>        Richardson: damping factor=1<br>      maximum iterations=2<br>
      tolerances:  relative=1e-05, absolute=1e-50, divergence=10000<br>      left preconditioning<br>      using nonzero initial guess<br>      using NONE norm type for convergence test<br>    PC Object:    (pres_mg_levels_1_)     192 MPI processes<br>
      type: sor<br>        SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1<br>      linear system matrix = precond matrix:<br>      Mat Object:       192 MPI processes<br>        type: mpiaij<br>
        rows=15231, cols=15231<br>        total: nonzeros=4604432, allocated nonzeros=4604432<br>        total number of mallocs used during MatSetValues calls =0<br>          using I-node (on process 0) routines: found 33 nodes, limit used is 5<br>
  Up solver (post-smoother) same as down solver (pre-smoother)<br>  Down solver (pre-smoother) on level 2 -------------------------------<br>    KSP Object:    (pres_mg_levels_2_)     192 MPI processes<br>      type: richardson<br>
        Richardson: damping factor=1<br>      maximum iterations=2<br>      tolerances:  relative=1e-05, absolute=1e-50, divergence=10000<br>      left preconditioning<br>      using nonzero initial guess<br>      using NONE norm type for convergence test<br>
    PC Object:    (pres_mg_levels_2_)     192 MPI processes<br>      type: sor<br>        SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1<br>      linear system matrix = precond matrix:<br>      Mat Object:       192 MPI processes<br>
        type: mpiaij<br>        rows=242341, cols=242341<br>        total: nonzeros=18277529, allocated nonzeros=18277529<br>        total number of mallocs used during MatSetValues calls =0<br>          not using I-node (on process 0) routines<br>
  Up solver (post-smoother) same as down solver (pre-smoother)<br>  Down solver (pre-smoother) on level 3 -------------------------------<br>    KSP Object:    (pres_mg_levels_3_)     192 MPI processes<br>      type: richardson<br>
        Richardson: damping factor=1<br>      maximum iterations=2<br>      tolerances:  relative=1e-05, absolute=1e-50, divergence=10000<br>      left preconditioning<br>      using nonzero initial guess<br>      using NONE norm type for convergence test<br>
    PC Object:    (pres_mg_levels_3_)     192 MPI processes<br>      type: sor<br>        SOR: type = local_symmetric, iterations = 1, local iterations = 1, omega = 1<br>      linear system matrix = precond matrix:<br>      Mat Object:       192 MPI processes<br>
        type: mpiaij<br>        rows=3285079, cols=3285079<br>        total: nonzeros=48995036, allocated nonzeros=53586621<br>        total number of mallocs used during MatSetValues calls =0<br>          not using I-node (on process 0) routines<br>
  Up solver (post-smoother) same as down solver (pre-smoother)<br>  linear system matrix = precond matrix:<br>  Mat Object:   192 MPI processes<br>    type: mpiaij<br>    rows=3285079, cols=3285079<br>    total: nonzeros=48995036, allocated nonzeros=53586621<br>
    total number of mallocs used during MatSetValues calls =0<br>      not using I-node (on process 0) routines<br><br><br><br></div><div>John</div></div></div>