Skip to content
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

Ifpack2: Additive schwarz with overlap iteration counts increase with repeated solves #9606

Closed
vbrunini opened this issue Aug 23, 2021 · 4 comments
Labels
type: bug The primary issue is a bug in Trilinos code or tests

Comments

@vbrunini
Copy link
Contributor

@jhux2

Observed on a test problem that with repeated reuse of an Ifpack2 RILUK preconditioner with "schwarz: overlap level" set to 1 led to a gradual increase in the linear solver iteration counts over time. If we restarted the simulation partway through the solver iteration counts immediately dropped back down. Running with "schwarz: overlap level" set to 0 the iteration counts also remain roughly constant for the full simulation. It appears there is some internal state associated with overlap that is not being reset between uses of the preconditioner and causing problems with repeated use. I can provide access to files to reproduce to an appropriate developer.

@vbrunini vbrunini added the type: bug The primary issue is a bug in Trilinos code or tests label Aug 23, 2021
@vbrunini vbrunini changed the title Ifpack2: RILUK with overlap iteration counts increase with repeated solves Ifpack2: Additive schwarz with overlap iteration counts increase with repeated solves Aug 25, 2021
@vbrunini
Copy link
Contributor Author

Looks like this is not specific to using RILUK as the inner preconditioner, I also see it with ILUT so I updated the title. Not sure who the best person to tag for Ifpack2, since @jhux2 is out this week maybe @srajama1 can help?

@vbrunini
Copy link
Contributor Author

I'm quite suspicious that AdditiveSchwarz<MatrixType,LocalInverseType>::compute () appears to only call Inverse_->numeric (); but not update the overlap matrix values prior to do that.

@jhux2
Copy link
Member

jhux2 commented Aug 26, 2021

@vbrunini Please send me an email with the details, and I'll have look.

@srajama1
Copy link
Contributor

@vbrunini This got classified wrong in email filter and didn't get my attention. Now @jhux2 is back, I assume he is on it.

brian-kelley added a commit to brian-kelley/Trilinos that referenced this issue Jul 1, 2022
Add a fast path ("Details::AdditiveSchwarzFilter") where LocalFilter,
SingletonFilter and ReorderFilter are applied all at once on device.
This benefits initialize, compute and apply, since the old path only
supported host matrix access with getLocalRowCopy, and each filter pass
did its own copy. The old path is still in place to support non-CrsMatrix
inputs to AdditiveSchwarz.

Also fix trilinos#9606 by having AdditiveSchwarz::compute re-import the halo
rows of the OverlappingRowMatrix (ExtMatrix_).
brian-kelley added a commit to brian-kelley/Trilinos that referenced this issue Jul 5, 2022
Add a fast path ("Details::AdditiveSchwarzFilter") where LocalFilter,
SingletonFilter and ReorderFilter are applied all at once on device.
This benefits initialize, compute and apply, since the old path only
supported host matrix access with getLocalRowCopy, and each filter pass
did its own copy. The old path is still in place to support non-CrsMatrix
inputs to AdditiveSchwarz.

Also fix trilinos#9606 by having AdditiveSchwarz::compute re-import the halo
rows of the OverlappingRowMatrix (ExtMatrix_).
brian-kelley added a commit to brian-kelley/Trilinos that referenced this issue Jul 5, 2022
Add a fast path ("Details::AdditiveSchwarzFilter") where LocalFilter,
SingletonFilter and ReorderFilter are applied all at once on device.
This benefits initialize, compute and apply, since the old path only
supported host matrix access with getLocalRowCopy, and each filter pass
did its own copy. The old path is still in place to support non-CrsMatrix
inputs to AdditiveSchwarz.

Also fix trilinos#9606 by having AdditiveSchwarz::compute re-import the halo
rows of the OverlappingRowMatrix (ExtMatrix_).
trilinos-autotester added a commit that referenced this issue Jul 14, 2022
…chwarz

Automatically Merged using Trilinos Pull Request AutoTester
PR Title: Ifpack2: Speedup additive schwarz, fix #9606
PR Author: brian-kelley
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug The primary issue is a bug in Trilinos code or tests
Projects
None yet
Development

No branches or pull requests

3 participants