Contains serial and parallel (MPI) implementations of following algorithms:
- Helholtz equation solver (internal iterations using Jacobi method)
- Helholtz equation solver (internal iterations using Seidel method with black-red ordering)
Note that present implementations are intended for academic purposes, as such they are not meant to be used in any sort of high-performance production code.
- Recommended compiler: Intel C++ Compiler
- Requires C++17 support
- Requires MPI implementation
Helmholtz equation:
where
defined on a 2D region
Adjust grid size
-
01.01
- Reworked type 3 communication to utilize its' async nature and compute middle rows during sending of data
- Refined comments, removed redundant dublicates
-
01.00
- Changed table formatting
- Added more error messages and safeguards
- Changed type 1 and 2 MPI communications to guarantee downwards-upwards waves of data transfer
-
00.04
- Added serial Seidel implementation
- Implemented parallel Seidel nethod
-
00.03
- Added serial Jacobi implementation
- Added multiple types of MPI communication, that can be toggled as a module inside the method
- Added proper output in form of a table
- Parallelized Jacobi stop condition
- Finalized Jacobi implementation and got proper speedup from parallelization
-
00.02
- Included full method description in comments
-
00.01
- Implemented parallel Jacobi method with MPI (stop condition is serial for now)
- Implemented parallel calculation of relative error
This project is licensed under the MIT License - see the LICENSE.md file for details