Skip to content

Conversation

@dylan-copeland
Copy link
Collaborator

@dylan-copeland dylan-copeland commented Aug 26, 2025

Parallelization of ROM and FOM linear system assembly and solution, using HypreParMatrix.

This is the first step in parallelizing the library, focused on ComponentTopologyHandler and the Stokes and Poisson examples. Some things still remain to be parallelized and optimized:

  • SubMeshTopologyHandler is not supported in parallel.
  • MFEMROMHandler::Solve still has global vectors for reduced_rhs and reduced_sol.
  • Some sparse matrices have their entries copied inefficiently, see PoissonSolver::CreateHypreParMatrix() and StokesSolver::CreateHypreParMatrix().
  • InterfaceForm::AssembleInterfaceMatrices should use a sparse array of SparseMatrix pointers, rather than a dense Array2D.
  • MFEMROMHandler::CreateHypreParMatrix should use a sparse array of blocks.
  • For problems where a component type is used many times, we can optimize by constructing one Mesh and FiniteElementSpace per component type. Currently, these are constructed for each instance of the component.
  • TopologyHandler::LoadBalance() is written only for simple Cartesian cases and has room for improvement in general

@dylan-copeland dylan-copeland added the enhancement New feature or request label Aug 26, 2025
@chldkdtn chldkdtn requested a review from dreamer2368 September 2, 2025 05:23
@chldkdtn
Copy link
Collaborator

chldkdtn commented Sep 2, 2025

I guess the failing test is because libROM PR #316 has not been merged yet, right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants