Schwarz Library v0.1
Pre-release
Pre-release
The schwarz-lib
is a library that showcases and enables experimentation with Schwarz methods. See a preprint of the paper with experiments on arXiv
Features
- Executor paradigm:
- GPU.
- OpenMP.
- Single rank per node and threading in one node.
- Solving paradigm:
- Direct:
- Ginkgo.
- CHOLMOD.
- Iterative:
- Ginkgo.
- deal.ii.
- Partitioning paradigm:
- METIS.
- Regular, 1D.
- Regular, 2D.
- Zoltan.
- Convergence check:
- Centralized, tree based convergence (Yamazaki 2019).
- Decentralized, leader election based (Bahi 2005).
- Communication paradigm.
- Onesided.
- Twosided.
- Event based.
- Communication strategies.
- Remote comm strategies:
- MPI_Put , gathered.
- MPI_Put , one by one.
- MPI_Get , gathered .
- MPI_Get , one by one.
- Lock strategies: MPI_Win_lock / MPI_Win_lock_all .
- Lock all and unlock all.
- Lock local and unlock local.
- Flush strategies: MPI_Win_flush / MPI_Win_flush_local .
- Flush all.
- Flush local.
- Schwarz problem type.
- RAS.
- O-RAS.
Any of the implemented features can be permuted and tested.
Known Issues
- On Summit, the Spectrum MPI seems to have a bug with using
MPI_Put
with GPU buffers.MPI_Get
works as expected. This bug has also been confirmed with an external micro-benchmarking library, OSU Micro-Benchmarks.