[Trilinos-Users] Starting out suggestions
Parks, Michael L
mlparks at sandia.gov
Thu Dec 30 16:34:32 MST 2010
Iterative solvers can incur less computational cost than direct solvers for certain important classes of problems. For a good comparison of iterative vs. direct solvers, see slides 100-105 here: http://www.cse.illinois.edu/heath/scicomp/notes/chap11.pdf.
GCRODR is a linear solver specialized for solving long sequences of linear systems where both the matrix and rhs are allowed to change, and where only one rhs is available at a time. If you want to use GCRODR with Epetra/Ifpack, the PrecGCRODREpetraExFile example is the place to start. As your matrix does not change, there are other approaches to consider which may be more efficient. If you want, please send me an e-mail directly and we can discuss.
You can find out how to submit a bug report here: http://trilinos.sandia.gov/bugs.html.
Sandia National Laboratories
From: trilinos-users-bounces at software.sandia.gov [mailto:trilinos-users-bounces at software.sandia.gov] On Behalf Of Luke Bloy
Sent: Thursday, December 30, 2010 3:50 PM
To: Heroux, Michael A
Subject: Re: [Trilinos-Users] Starting out suggestions
thanks for the response. I have a couple of follow up questions.
For the belos/Eperta/Ifpack path i came across the PrecGCRODREpetraExFile example. Does this seem like a reasonable place to start?
On a more basic level. I'm not 100% sure what I gain using the iterative solvers over the direct solvers available via amesos. I assume that the iterative solvers are less memory intensive but beyond that i'm not positive what is gained by using the more complex methods.
When I'm compiling with amesos turned on, via the ccmake interface (I'm going to try to duplicate the problem from a cmake script). I get the following compilation error.
/opt/trilinos-10.6.2-Source/packages/amesos/src/SuiteSparse/CHOLMOD/Core/amesos_t_cholmod_dense.c:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
Whats is the preferred method to submit a bug report?
Thanks again for the help.
On 12/30/2010 02:38 PM, Heroux, Michael A wrote:
You have figured out quite a bit already. Very good.
There are several choices you can make going forward. Here are some options:
* Yes, converting from the ublas to Epetra is the first required step. As an alternative, you might consider trying Tpetra. Although newer, more complicated and having a few know performance disadvantages vs. Epetra, Tpetra provides compilation targets for multicore and GPUs, supports multiple floating point and integer types and is where most of the manycore research in Trilinos is occurring. However, using Epetra first is not bad, even if you might be interested in
Tpetra eventually, since they have very similar APIs.
Ifpack is a good choice for preconditioning options, but has a similar counterpart as Epetra, called Ifpack2. Ifpack2 is based on Tpetra and is again where all of the manycore and multiprecision work is going. Once again, switching to Ifpack2 later should be fairly straight-forward.
* We have two iterative solver packages: AztecOO and Belos. Similar to the above discussion, AztecOO is based on Epetra solely. Belos supports both Epetra and Tpetra, and can support multiprecision.
* Stratimikos is a good option to manage the use of preconditioners and iterative solvers. It allows easy switching between AztecOO and Belos, and preconditioner packages Ifpack and ML. It will eventually support Tpetra and Ifpack2, but doesn't right now.
So, the general advice:
For best MPI-only performance today with a robust double-precision-only and mature software stack, you can use Epetra with AztecOO (or Belos), Ifpack and ML (which is necessary for scalability eventually). You can use the solvers and preconditioners via Stratimikos, which is very convenient.
For future oriented software development, the Tpetra/Belos/Ifpack2 option is viable.
I hope this helps.
On 12/30/10 12:10 PM, "Luke Bloy" <lbloy at seas.upenn.edu> wrote:
> I'm new to trilinos and am looking for some suggestions on where to start.
> My immediate application is to repeatedly ( 10,000 - 500,000 times)
> solve a sparse linear system defined by a non-symmetric matrix A. The
> size of A is roughly 2,000,000 square but with only ~ 30,000,000
> unknowns. The RHS of these systems will also generally be fairly sparse.
> In my head the procedure would be.
> 1) Convert ublas csr matrix to Eperta format.
> 2) compute an ILU or other preconditioner (ifpack)
> 3) then solve each RHS
> I've just begun to go through the tutorials and documentation. At first
> if seemed I should be looking at Belos and ifpack or perhaps Amesos. but
> then I came across Stratimikos and thought that looked promissing.
> So i guess my question is where should i start?
> Thanks in advance.
> Trilinos-Users mailing list
> Trilinos-Users at software.sandia.gov
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Trilinos-Users