Skip to content

Conversation

@nmnobre
Copy link
Member

@nmnobre nmnobre commented Oct 27, 2025

Reason

a) Unblock upcoming nonlinear solves using the MFEM backend affected by the changes in hypre 3.0 to PCG and GMRES.
b) Accelerate MFEM test executions.

Design

a) Extended mfem::HyprePCG and mfem::HypreGMRES to reproduce the effect of mfem/mfem#5065.
b) Split LOR tests into a different folder to gain some extra concurrency when running the test suite.

Impact

b) This mostly benefits people working on the MFEM backend, I don't expect us to see much difference on CIVET.
On my workstation, with ./run_tests -C tests/mfem -j64:

Configuration Before [s] After [s] Speedup
--dbg --compute-device cuda 208.5 147.0 42%
--dbg --compute-device cpu 223.1 152.8 46%
--opt --compute-device cuda 83.0 72.8 14%
--opt --compute-device cpu 83.2 71.9 16%

@nmnobre nmnobre requested a review from lindsayad as a code owner October 27, 2025 16:37
@moosebuild
Copy link
Contributor

moosebuild commented Oct 27, 2025

Job Documentation, step Docs: sync website on 2e0537d wanted to post the following:

View the site here

This comment will be updated on new commits.

@moosebuild
Copy link
Contributor

moosebuild commented Oct 27, 2025

Job Coverage, step Generate coverage on 2e0537d wanted to post the following:

Framework coverage

2acb41 #31798 2e0537
Total Total +/- New
Rate 85.99% 85.99% +0.00% 100.00%
Hits 124177 124181 +4 24
Misses 20240 20240 - 0

Diff coverage report

Full coverage report

Modules coverage

Coverage did not change

Full coverage reports

Reports

This comment will be updated on new commits.

Copy link
Member

@lindsayad lindsayad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do these changes lead to a speedup?

@nmnobre
Copy link
Member Author

nmnobre commented Oct 27, 2025

why do these changes lead to a speedup?

Apologies, I've edited the original post to make it clearer. What makes it faster is the LOR splitting bit.

nmnobre added a commit to nmnobre/moose that referenced this pull request Oct 27, 2025
nmnobre added a commit to nmnobre/moose that referenced this pull request Oct 27, 2025
nmnobre added a commit to nmnobre/moose that referenced this pull request Oct 27, 2025
nmnobre added a commit to nmnobre/moose that referenced this pull request Oct 27, 2025
@nmnobre
Copy link
Member Author

nmnobre commented Oct 28, 2025

Notable changes since last reviewed: 1) moved the new class definitions to a separate header, so it can be included (and thus reused) in different compilation units, solving the non-unity build problems and 2) disabled multithreading for MFEM problems to avoid issues when adding objects for each thread (in particular in FEProblemBase::addFunction - 003a961), with the (niche?) caveat that libMesh subapps will also be single-threaded.

@moosebuild
Copy link
Contributor

Job Test, step Results summary on 2e0537d wanted to post the following:

Framework test summary

Compared against 2acb415 in job civet.inl.gov/job/3334968.

Removed tests

Test Time (s)
mfem/kernels.MFEMCurlCurlLOR 10.22
mfem/kernels.MFEMHeatConductionLOR 6.58
mfem/kernels.MFEMGradDivLOR 6.41
mfem/kernels.MFEMDiffusionLOR 2.13

Added tests

Test Time (s)
mfem/lor.MFEMCurlCurlLOR 9.99
mfem/lor.MFEMHeatConductionLOR 6.81
mfem/lor.MFEMGradDivLOR 5.81
mfem/lor.MFEMDiffusionLOR 2.13

Run time changes

Modules test summary

Compared against 2acb415 in job civet.inl.gov/job/3334968.

Removed tests

Added tests

Run time changes

Test Base (s) Head (s) +/-
stochastic_tools/test:web_server_control.stochastic_control/batch_reset_multi 6.00 2.90 -51.71%

@lindsayad lindsayad merged commit 8334cde into idaholab:next Oct 28, 2025
69 checks passed
@nmnobre nmnobre deleted the hypre branch October 28, 2025 19:23
lynnmunday pushed a commit to lynnmunday/moose that referenced this pull request Oct 29, 2025
nmnobre added a commit to nmnobre/moose that referenced this pull request Nov 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants