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.cistern...@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

Reply via email to