Hi all,
We are using PETSc 3.20 in our code and running succesfully several solvers on Nvidia GPU with OpenMPI library which are not GPU aware (so I need to add the flag -use_gpu_aware_mpi 0).
But now, when using OpenMPI GPU Aware library (OpenMPI 4.0.5 ou 4.1.5 from NVHPC), some parallel calculations failed with KSP_DIVERGED_ITS or KSP_DIVERGED_DTOL
with several configurations. It may run wells on a small test case with (matrix is symmetric):
-ksp_type cg -pc_type gamg -pc_gamg_type classical
But suddenly with a number of devices for instance bigger than 4 or 8, it may fail.
If I switch to another solver (BiCGstab), it may converge:
-ksp_type bcgs -pc_type gamg -pc_gamg_type classical
The more sensitive cases where it diverges are the following:
-ksp_type cg -pc_type hypre -pc_hypre_type boomeramg
-ksp_type cg -pc_type gamg -pc_gamg_type classical
And the bcgs turnaroud doesn't work each time...
It seems to work without problem with aggregation (at least 128 GPUs on my simulation):
-ksp_type cg -pc_type gamg -pc_gamg_type agg
So I guess there is a weird thing happening in my code during the solve in PETSc with MPI GPU Aware, as all the previous configurations works with non GPU aware MPI.
Here is the -ksp_view log during one fail with the first configuration:
I didn't succeed for the moment creating a reproducer with ex.c examples...
Did you see this kind of behaviour before?
Should I update my PETSc version ?
Thanks for any advice,