llnl / llnl/smith

Improve linear solver options

Open
#975 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug bugfix day discretization
Dominant language
C++
Stars
245
Forks
36
Avg merge
8d 23h
Merged PRs (30d)
4

Description

We have a few major issues with our current linear solvers:

- SuperLU has a memory leak and cannot be used when many linear solves are required.
- The performance of BoomerAMG has severely degraded since updating to Hypre 2.26.
- The MFEM-based GMRES often tests preconditioned residuals for convergence, leading to the linear solver thinking it is converged before it really is.

To fix these problems, I suggest the following:

- Add strumpack as our default direct solver.
- Use ILU as our default preconditioner until the upstream Boomer PRs are merged.
- Investigate other GMRES implementations to avoid the early exit issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the current linear-solver configuration and the SuperLU, BoomerAMG, and MFEM-based GMRES paths. Compare the solver and preconditioner choices against the reported memory leak, performance regression, and early convergence behavior. Done means the replacement options are evaluated and a clear implementation scope is established for all three problems.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.