[Trilinos-Users] BELOS GMRES

Heroux, Mike MHeroux at CSBSJU.EDU
Fri Dec 8 15:46:10 EST 2017


What is not clear from your description is a sense of how ill-conditioned your problem is.  I see three basic options:

  1.  1M equations is not so large nowadays.  You might consider trying one of the direct solvers in Amesos, in particular SuperLU_dist (assuming you are executing with MPI in parallel).  This approach may result in a lot of fill, but if you have enough memory, it could work well.  This is especially true if the matrix is quite ill-conditioned, because preconditioner setup can be expensive and you may need a lot of iterations.  This approach may not be feasible if your matrix is not assembled as a single CrsMatrix object.
  2.  If your system is fairly well conditioned, you could consider using Bi-CGStab as the iterative method.  You could also consider Jacobi scaling as the preconditioner.  My guess is this approach won’t work well enough, but it is worth mentioning.
  3.  If your matrix is ill-conditioned and you are not happy with the direct sparse solver, you could try ILU-preconditioned GMRES and try to avoid restarting by setting the restart value high, say 100 – 150.  For difficult problems, GMRES works much better without restarting, and you won’t see the drop in residual until you get close to convergence.  For a problem size of 1M, I am guessing ILU is probably best.  If your problem size increases substantially, you could consider using ML or Muelu algebraic multigrid preconditioning instead.

I hope this is helpful.


From: Trilinos-Users <trilinos-users-bounces at trilinos.org> on behalf of Deepak Garg <deepak.garg at ingv.it>
Date: Wednesday, December 6, 2017 at 11:26 AM
To: Trilinos Users <Trilinos-users at trilinos.org>
Subject: [Trilinos-Users] BELOS GMRES

I am using BELOS package of Trilinos (version 12.10.1) to solve my linear system in parallel arising in finite element method. I use GMRES method with ILU preconditioner following "BlockPrecGmresEpetraExFile.cpp" as an example to write a wrapper class in my code. The matrix vector system in my numerical problems are usually of size 1 million (entries in vector). The entries in system vary from 0.00001 to 10000000.

I have three questions:

1. What should be the optimized values for the GMRES parameters such as maxrestarts, maxiters and maxsubspace?
2. Is ILU preconditioner the best one to use with GMRES?  Are there other preconditioners which can scale the system better than ILU?

3. Which is the fastest linear solver in BELOS package?

Kind regards,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://trilinos.org/pipermail/trilinos-users/attachments/20171208/1052d10e/attachment.html>

More information about the Trilinos-Users mailing list