From f0c3589fe9912eb96c7d5c451edca30027da8fcf Mon Sep 17 00:00:00 2001 From: Sylwester Arabas Date: Tue, 26 Mar 2024 10:07:11 +0100 Subject: [PATCH] update design-goals passage --- README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d61794f..18f9708 100644 --- a/README.md +++ b/README.md @@ -152,12 +152,15 @@ licence: [GPL v3](https://www.gnu.org/licenses/gpl-3.0.html) ## Design goals -- MPI support for PyMPDATA implemented externally (i.e., not incurring any overhead or additional dependencies for PyMPDATA users) -- MPI calls within Numba njitted code (hence not using `mpi4py`, but leveraging `numba-mpi`) -- hybrid domain decomposition parallelisation: threading (internal in PyMPDATA, in the inner dimension) + MPI (either inner or outer dimension) -- portability across major OSes (currently Linux & macOS; no Windows support due [challenges in getting HDF5/MPI-IO to work there](https://docs.h5py.org/en/stable/build.html#source-installation-on-windows)) -- full test coverage including CI builds asserting on same results with multi-node vs. single-node computations -- Continuous Integration with different OSes and different MPI implementation +- MPI support for [PyMPDATA](https://pypi.org/project/PyMPDATA/) implemented externally (i.e., not incurring any overhead or additional dependencies for PyMPDATA users) +- MPI calls within [Numba njitted code](https://numba.pydata.org/numba-doc/dev/reference/jit-compilation.html) (hence not using [`mpi4py`](https://mpi4py.readthedocs.io/), but rather [`numba-mpi`](https://pypi.org/p/numba-mpi/)) +- hybrid domain-decomposition parallelism: threading (internal in PyMPDATA, in the inner dimension) + MPI (either inner or outer dimension) +- example simulation scenarios featuring HDF5/MPI-IO output storage (using [h5py](https://www.h5py.org/)) +- [py-modelrunner](https://github.com/zwicker-group/py-modelrunner) simulation orchestration +- portability across Linux & macOS (no Windows support as of now due to [challenges in getting HDF5/MPI-IO to work there](https://docs.h5py.org/en/stable/build.html#source-installation-on-windows)) +- Continuous Integration (CI) with different OSes and different MPI implementations (leveraging to mpi4py's [setup-mpi Github Action](https://github.com/mpi4py/setup-mpi/)) +- full test coverage including CI builds asserting on same results with multi-node vs. single-node computations (with help of [pytest-mpi](https://pypi.org/p/pytest-mpi/)) +- ships as a [pip-installable package](https://pypi.org/project/PyMPDATA-MPI) - aimed to be a dependency of domain-specific packages ## Related resources