Hello Mark,

Thanks for your answer. Indeed, I didn't see the information that classical AMG 
was not really supported:


 -solver2_pc_gamg_type <now classical : formerly agg>: Type of AMG method (only 
'agg' supported and useful) (one of) classical geo agg (PCGAMGSetType)

We switched very recently from GAMG("agg") to GAMG("classical") for a weak 
scaling test up to 32000 cores, where we saw very good scalability with 
GAMG("classical") compared to GAMG("agg"). But it was with PETSc 3.14...

So today, we are going to upgrade to 3.20 and focus on GAMG("agg") or Hypre 
Classical AMG. We will see how it compares.

May I ask you what is your point of view of the current state of the GPU 
versions of GAMG("agg") versus Hypre AMG Classical ?

In fact, the reason of our move from 3.14 to 3.20 is to take advantage of all 
the progress in PETSc and Hypre on accelerated solvers/preconditioners during 
the last 2 years.

Greatly appreciate your help,


Pierre LEDAC
Commissariat à l’énergie atomique et aux énergies alternatives
Centre de SACLAY
DES/ISAS/DM2S/SGLS/LCAN
Bâtiment 451 – point courrier n°43
F-91191 Gif-sur-Yvette
+33 1 69 08 04 03
+33 6 83 42 05 79
________________________________
De : Mark Adams <[email protected]>
Envoyé : mercredi 13 décembre 2023 20:54:17
À : LEDAC Pierre
Cc : [email protected]; BRUNETON Adrien
Objet : Re: [petsc-users] PETSc 3.14 to PETSc 3.20: Different (slower) 
convergence for classical AMG (sequential and especially in parallel)

Hi Pierre,

Sorry I missed this post and your issues were brought to my attention today.

First, the classic version is not supported well. The postdoc that wrote the 
code is long gone and I don't know the code at all.
It is really a reference implementation that someone could build on and is not 
meant for production.
In 10 years you are the first user that has connected us.

The hypre package is a very good AMG solver and it uses classical AMG as the 
main solver.
I wrote GAMG ("agg") which is a smoothed aggregation AMG solver and is very 
different from classical.
I would suggest you move to hypre or '-pc_gamg_type agg'.

The coarsening was developed in this time frame and there was a lot of churn as 
a new strategy for aggressive coarsening did not work well for some users and I 
had to add the old method in and then made it the default (again).
This change missed v3.20, but you can get the old aggressive strategy with 
'-pc_gamg_aggressive_square_graph'.
Check with -options_left to check that it is being used.

As far as your output (nice formatting, thank you), the coarse grid is smaller 
in the new code.
            rows=41, cols=41   |          rows=30, cols=30
"square graph" should fix this.

You can also try not using aggressive coarsening with:
You could try '-pc_gamg_aggressive_coarsening 0'

Let me know how it goes and let's try to get you into a more sustainable state 
... I really try not to change this code but sometimes need to.

Thanks,
Mark





On Mon, Oct 9, 2023 at 10:43 AM LEDAC Pierre 
<[email protected]<mailto:[email protected]>> wrote:

Hello all,


I am struggling to find the same convergence in iterations when using classical 
algebric multigrid in my code with PETSc 3.20 compared to PETSc 3.14.


I am using in order to solve a Poisson system:

-ksp_type cg -pc_type gamg -pc_gamg_type classical


I read the different releases notes between 3.15 and 3.20:

https://petsc.org/release/changes/317

https://petsc.org/main/manualpages/PC/PCGAMGSetThreshold/


And have a look at the archive mailing list (especially this one: 
https://www.mail-archive.com/[email protected]/msg46688.html)

so I added some other options to try to have the same behaviour than PETSc 3.14:


-ksp_type cg -pc_type gamg -pc_gamg_type classical -mg_levels_pc_type sor 
-pc_gamg_threshold 0.


It improves the convergence but there still a different convergence though (26 
vs 18 iterations).

On another of my test case, the number of levels is different (e.g. 6 vs 4) 
also, and here it is the same, but with a different coarsening according to the 
output from the -ksp_view option


The main point is that the convergence dramatically degrades in parallel on a 
third test case, so I can't upgrade to PETSc 3.20 for now unhappily.


I send you the partial report (petsc_314_vs_petsc_320.ksp_view) with -ksp_view 
(left PETSc 3.14, right PETSc 3.20) and the configure/command line options used 
(in petsc_XXX_petsc.TU files).


Could my issue related to the following 3.18 change ? I have not tried the 
first one.

  *   Remove PCGAMGSetSymGraph() and -pc_gamg_sym_graph. The user should now 
indicate symmetry and structural symmetry using 
MatSetOption<https://petsc.org/release/manualpages/Mat/MatSetOption/>() and 
GAMG will symmetrize the graph if a symmetric options is not set

  *   Change -pc_gamg_reuse_interpolation default from false to true.


Any advice would be greatly appreciated,


Pierre LEDAC
Commissariat à l’énergie atomique et aux énergies alternatives
Centre de SACLAY
DES/ISAS/DM2S/SGLS/LCAN
Bâtiment 451 – point courrier n°43
F-91191 Gif-sur-Yvette
+33 1 69 08 04 03
+33 6 83 42 05 79

Reply via email to