Skip to content
Snippets Groups Projects

Parallel ISTL

Merged Müller, Felix requested to merge feature/parallel_istl into master

This changes the linear algebra interface such that parallel linear algebra backends can be used and provides the implementation of the interface for parallel ISTL solvers.

Adds:

  • Support for parallel ISTL solvers using the current solver interface
  • Runtime switch for overlap type of the ISTL solver used
  • solver->category: [default, sequential, nonoverlapping, overlapping] initfile parameter
  • Comm object for the linear algebra interface that is to be used as a container for all required information for running the backend's solvers in parallel
  • Implementation of the Comm object for ISTL

Changes:

  • Linear algebra classes now use a Traits class as template parameter

TODO:

  • Check if Grid uses overlap and use [Non]OverlappingSchwarzOperator
  • Provide an efficient method for computing the parallel index set
  • Resolve all TODO(FM) markers
  • Make an alternative implementation for nonoverlapping Schwarz
  • Handle the corner case overlapSize + ghostSize == 0
  • Add an example or test file
  • Update assembler element loops to use the proper partition set

Relates to #4 (closed).

Edited by Müller, Felix

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Müller, Felix added 1 commit

    added 1 commit

    • 0ee4b343 - Replaced enable_if for DefaultCreators by template specialization

    Compare with previous version

  • Müller, Felix changed the description

    changed the description

  • Müller, Felix added 1 commit

    added 1 commit

    • 688b9563 - Simplified DefaultCreators template specializations

    Compare with previous version

  • Müller, Felix added 1 commit

    added 1 commit

    • a573a982 - Simplified UmfpackRunner template specialization

    Compare with previous version

  • I was considering splitting ISTLRunner into an #if HAVE_MPI part with the new things I changed in this MR and a sequential part that is basically what we had before. Then it will be easier to add sequential-only solvers later on. What are your thoughts on this?

  • Praetorius, Simon
  • Müller, Felix added 1 commit

    added 1 commit

    • 899b42a7 - Changed RunnerInterface to take an additional Comm argument; Added Comm...

    Compare with previous version

  • Müller, Felix added 1 commit

    added 1 commit

    • 5c2093af - Added workaround for comm index issue; Fixed problem with lack of copy elision for older compilers

    Compare with previous version

  • Müller, Felix marked the checklist item Check if Grid uses overlap and use [Non]OverlappingSchwarzOperator as completed

    marked the checklist item Check if Grid uses overlap and use [Non]OverlappingSchwarzOperator as completed

  • Müller, Felix added 1 commit

    added 1 commit

    • a5a50014 - Changed NoComm dummy to work with new interface

    Compare with previous version

  • A general comment: Try to return std::unique_ptr in create() functions and name the corresponding classes Creators, not Factories.

  • Müller, Felix added 1 commit

    added 1 commit

    • ee683a4d - Moved typedefs to Traits class; Changed creator return type to unique_ptr

    Compare with previous version

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading