[petsc-users] FGMRES and BCGS

Zhang, Hong hzhang at mcs.anl.gov
Wed Sep 29 17:39:19 CDT 2021


See https://doc.comsol.com/5.5/doc/com.comsol.help.comsol/comsol_ref_solver.27.123.html
The Iterative Solvers - COMSOL Multiphysics<https://doc.comsol.com/5.5/doc/com.comsol.help.comsol/comsol_ref_solver.27.123.html>
The relaxation factor ω to some extent controls the stability and convergence properties of a numerical solver by shifting its eigenvalue spectrum. The optimal value for the relaxation factor can improve convergence significantly — for example, for SOR when used as a solver. However, the optimal choice is typically a subtle task with arbitrary complexity.
doc.comsol.com
We use BCGS for constant memory while gmres without restart requires increased memory but has predictable convergence than BCGS.
Hong

________________________________
From: petsc-users <petsc-users-bounces at mcs.anl.gov> on behalf of Jed Brown <jed at jedbrown.org>
Sent: Wednesday, September 29, 2021 5:28 PM
To: Marco Cisternino <marco.cisternino at optimad.it>; petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>
Subject: Re: [petsc-users] FGMRES and BCGS

It is not surprising. BCGS uses less memory for the Krylov vectors, but that might be a small fraction of the total memory used (considering your matrix and GAMG). FGMRES(30) needs 60 work vectors (2 per iteration). If you're using a linear (non-iterative) preconditioner, then you don't need a flexible method -- plain GMRES should be fine. FGMRES uses the unpreconditioned norm, which you can also get via -ksp_type gmres -ksp_norm_type unpreconditioned.

This classic paper shows that for any class of nonsymmetric Krylov method, there are matrices in which that method outperforms every other method by at least sqrt(N).

https://epubs.siam.org/doi/10.1137/0613049

Marco Cisternino <marco.cisternino at optimad.it> writes:

> Good Morning,
> I usually solve a non-symmetric discretization of the Poisson equation using GAMG+FGMRES.
> In the last days I tried to use BCGS in place of FGMRES, still using GAMG as preconditioner.
> No problem in finding the solution but I'm experiencing something I didn't expect.
> The test case is a 25 millions cells domain with Dirichlet and Neumann boundary conditions.
> Both the solvers are able to solve the problem with an increasing number of MPI processes, but:
>
>   *   FGMRES is about 25% faster than BCGS for all the processes number
>   *   Both solvers have the same scalability from 48 to 384 processes
>   *   Both solvers almost use the same amount of memory (FGMRES use a restart=30)
> Am I wrong expecting less memory consumption and more performance from BCGS with respect to FGMRES?
> Thank you in advance for any help.
>
> Best regards,
> Marco Cisternino
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20210929/90e2bcc9/attachment.html>


More information about the petsc-users mailing list