-
Notifications
You must be signed in to change notification settings - Fork 242
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use deal.II CG solver instead of trilinos #5614
Conversation
The only thing I could think of is that they might have an implementation that does some tricks to give better scalability (avoiding communication or hiding latency). |
This fails on the following tests:
and on another tester with
|
There is not very much one can optimize about CG (unlike GMRES, for example). So this looks ok to me, and I'm not overly concerned about it making a difference on large parallel jobs. |
dcf23f4
to
3a36a0a
Compare
I rebased the PR and updated the few changed test results. Most of the changed results are only marginally different. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We use CG solvers for the inner A and S blocks of the preconditioner when doing the expensive iterations. For the GMG preconditioner we use the CG solver provided by deal.II in
deal.II/lac/solver_cg.h
, but for the AMG preconditioner we use the CG solver provided by trilinos throughdeal.II/lac/trilinos_solver.h
. When working on #5613 I tried to use the deal.II CG solver for the AMG preconditioner instead. This does not make a difference for the number of A or S iterations (they are literally identical) or the solution (also identical), but the deal.II solver seems to be consistently faster by about 10-20% of the total Stokes solver time (including the outer GMRES iterations).Here is an example for the cookbook
transform_fault_behn_2007/temperature_dependent.prm
run with the AMG preconditioner and only expensive Stokes iterations on Frontera:With trilinos CG:
With this branch:
To me it looks like the deal.II version is clearly superior and we should use that one. Since this is the version that is also used in the GMG solver, we know it scales well to large problem sizes. Is there any other reason to use the trilinos solver that I didnt see?