numba-mpi 1.1.5__tar.gz → 1.1.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/.github/workflows/readme_snippets.yml +1 -1
  2. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/.github/workflows/tests+pypi.yml +25 -36
  3. numba_mpi-1.1.7/.github/workflows/urlcheck.yml +24 -0
  4. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/.pre-commit-config.yaml +1 -1
  5. {numba_mpi-1.1.5/numba_mpi.egg-info → numba_mpi-1.1.7}/PKG-INFO +21 -23
  6. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/README.md +7 -9
  7. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/common.py +2 -1
  8. {numba_mpi-1.1.5 → numba_mpi-1.1.7/numba_mpi.egg-info}/PKG-INFO +21 -23
  9. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi.egg-info/SOURCES.txt +3 -1
  10. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi.egg-info/requires.txt +4 -1
  11. numba_mpi-1.1.7/pyproject.toml +45 -0
  12. numba_mpi-1.1.7/tests/conftest.py +7 -0
  13. numba_mpi-1.1.5/setup.py +0 -38
  14. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/.github/numba_mpi_logo.png +0 -0
  15. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/.github/numba_mpi_logo.svg +0 -0
  16. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/.github/workflows/stale.yml +0 -0
  17. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/.gitignore +0 -0
  18. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/.vscode/settings.json +0 -0
  19. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/.zenodo.json +0 -0
  20. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/CITATION.cff +0 -0
  21. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/CODE_OF_CONDUCT.md +0 -0
  22. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/LICENSE +0 -0
  23. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/__init__.py +0 -0
  24. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/__init__.py +0 -0
  25. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/allreduce.py +0 -0
  26. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/barrier.py +0 -0
  27. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/bcast.py +0 -0
  28. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/initialized.py +0 -0
  29. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/irecv.py +0 -0
  30. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/isend.py +0 -0
  31. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/operator.py +0 -0
  32. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/query_thread.py +0 -0
  33. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/rank.py +0 -0
  34. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/recv.py +0 -0
  35. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/reduce.py +0 -0
  36. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/requests.py +0 -0
  37. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/scatter_gather.py +0 -0
  38. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/send.py +0 -0
  39. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/size.py +0 -0
  40. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/api/wtime.py +0 -0
  41. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi/utils.py +0 -0
  42. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi.egg-info/dependency_links.txt +0 -0
  43. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/numba_mpi.egg-info/top_level.txt +0 -0
  44. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/setup.cfg +0 -0
  45. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/__init__.py +0 -0
  46. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/api/test_allreduce.py +0 -0
  47. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/api/test_barrier.py +0 -0
  48. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/api/test_bcast.py +0 -0
  49. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/api/test_init.py +0 -0
  50. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/api/test_isend_irecv.py +0 -0
  51. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/api/test_query_thread.py +0 -0
  52. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/api/test_rank.py +0 -0
  53. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/api/test_reduce.py +0 -0
  54. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/api/test_scatter_gather.py +0 -0
  55. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/api/test_send_recv.py +0 -0
  56. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/api/test_size.py +0 -0
  57. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/api/test_wtime.py +0 -0
  58. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/common.py +0 -0
  59. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/paper_listings/exchange.py +0 -0
  60. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/paper_listings/hello.py +0 -0
  61. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/paper_listings/mpi4py_with_error.py +0 -0
  62. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/paper_listings/numba_mpi.py +0 -0
  63. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/paper_listings/py-pde.py +0 -0
  64. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/paper_listings/test.py +0 -0
  65. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/paper_listings/timing.py +0 -0
  66. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/test_paper_listings.py +0 -0
  67. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/test_version.py +0 -0
  68. {numba_mpi-1.1.5 → numba_mpi-1.1.7}/tests/utils.py +0 -0
@@ -19,7 +19,7 @@ jobs:
19
19
  - uses: actions/checkout@v4
20
20
  - uses: actions/setup-python@v5
21
21
  with:
22
- python-version: "3.10"
22
+ python-version: "3.13"
23
23
  - uses: mpi4py/setup-mpi@v1
24
24
  - run: pip install -e .
25
25
  - run: pip install pytest-codeblocks pytest matplotlib
@@ -19,21 +19,15 @@ jobs:
19
19
  runs-on: ubuntu-latest
20
20
  steps:
21
21
  - uses: actions/checkout@v4
22
- - uses: mpi4py/setup-mpi@v1
23
- - name: Set up Python
24
- uses: actions/setup-python@v5
22
+ - uses: actions/setup-python@v5
25
23
  with:
26
- python-version: "3.10"
27
- - name: Install dependencies
28
- run: |
29
- python -m pip install --upgrade pip
30
- pip install pylint==2.14.5
31
- python setup.py egg_info
32
- ex -sc 'g/^\[tests\]$/d' -cx numba_mpi.egg-info/requires.txt
33
- pip install -r numba_mpi.egg-info/requires.txt
34
- - name: Analysing the code with pylint
35
- run: |
36
- pylint --unsafe-load-any-extension=y --disable=fixme,duplicate-code $(git ls-files '*.py' | grep -v -e ^tests/paper_listings)
24
+ python-version: "3.13"
25
+ - uses: mpi4py/setup-mpi@v1
26
+ - run: |
27
+ pip install pylint
28
+ pip install -e .[tests,CI_version_pins]
29
+ - run: |
30
+ pylint --ignored-modules=mpi4py --disable=fixme,duplicate-code $(git ls-files '*.py' | grep -v -e ^tests/paper_listings)
37
31
 
38
32
  precommit:
39
33
  runs-on: ubuntu-latest
@@ -65,7 +59,7 @@ jobs:
65
59
  - name: Build
66
60
  run: |
67
61
  pip install pdoc
68
- pip install -e .
62
+ pip install -e .[CI_version_pins]
69
63
  PDOC_ALLOW_EXEC=1 python -We -m pdoc -o html numba_mpi
70
64
  - name: Deploy
71
65
  if: github.ref == 'refs/heads/main'
@@ -91,39 +85,37 @@ jobs:
91
85
  mpi-np: [2, 3]
92
86
  platform:
93
87
  - ubuntu-latest
88
+ - ubuntu-24.04-arm
94
89
  - windows-latest
95
- - macos-13 # arch: Intel
90
+ - macos-15-intel # arch: Intel
96
91
  - macos-15 # arch: arm64
97
- python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
92
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
98
93
  mpi: [ 'mpich', 'openmpi', 'msmpi', 'intelmpi']
99
94
  exclude:
100
- - platform: macos-13
95
+ - platform: macos-15-intel
101
96
  mpi: msmpi
102
- - platform: macos-13
97
+ - platform: macos-15-intel
103
98
  mpi: intelmpi
104
- - platform: macos-13 # TODO: # 163
105
- mpi: openmpi
106
99
  - platform: macos-15
107
100
  mpi: msmpi
108
101
  - platform: macos-15
109
102
  mpi: intelmpi
110
- - platform: macos-15
103
+ - platform: macos-15-intel # TODO: # 163
104
+ mpi: openmpi
105
+ - platform: macos-15 # TODO: # 163
111
106
  mpi: openmpi
112
107
  - platform: ubuntu-latest
113
108
  mpi: msmpi
114
- - platform: ubuntu-latest # TODO: #162
115
- mpi: mpich
109
+ - platform: ubuntu-24.04-arm
110
+ mpi: msmpi
111
+ - platform: ubuntu-24.04-arm
112
+ mpi: intelmpi
116
113
  - platform: windows-latest
117
114
  mpi: mpich
118
115
  - platform: windows-latest
119
116
  mpi: openmpi
120
117
  - platform: windows-latest
121
118
  mpi: intelmpi
122
-
123
- # https://github.com/numba-mpi/numba-mpi/issues/69
124
- - platform: ubuntu-latest
125
- python-version: 3.9
126
- mpi: mpich
127
119
  fail-fast: false
128
120
  runs-on: ${{ matrix.platform }}
129
121
  steps:
@@ -134,14 +126,14 @@ jobs:
134
126
  - uses: mpi4py/setup-mpi@v1
135
127
  with:
136
128
  mpi: ${{ matrix.mpi }}
137
- - if: ${{ matrix.platform == 'macos-15' }}
138
- run: echo DYLD_FALLBACK_LIBRARY_PATH="/opt/homebrew/lib:/usr/lib:$DYLD_FALLBACK_LIBRARY_PATH" >> $GITHUB_ENV
129
+ - if: startsWith(matrix.platform, 'macos-')
130
+ run: echo DYLD_FALLBACK_LIBRARY_PATH="/opt/homebrew/lib:/usr/local/lib:/usr/lib:$DYLD_FALLBACK_LIBRARY_PATH" >> $GITHUB_ENV
139
131
  - if: matrix.mpi == 'intelmpi'
140
132
  run: |
141
133
  # checking if multiple MPI libs are OK
142
134
  sudo apt-get install mpi-default-bin
143
135
  mpiexec python -c "import os; assert 'I_MPI_ROOT' in os.environ"
144
- - run: pip install -e .[tests]
136
+ - run: pip install -e .[tests,CI_version_pins]
145
137
  - run: python -We -c "import mpi4py"
146
138
  - run: python -We -c "import numba_mpi"
147
139
  - run: mpiexec -n ${{ matrix.mpi-np }} pytest --durations=10 -p no:unraisableexception -We
@@ -169,10 +161,7 @@ jobs:
169
161
  - run: twine check --strict dist/*
170
162
 
171
163
  - run: |
172
- python setup.py egg_info
173
- ex -sc 'g/^\[tests\]$/d' -cx numba_mpi.egg-info/requires.txt
174
- pip install -r numba_mpi.egg-info/requires.txt
175
- pip install --no-index --find-links file:./dist numba-mpi
164
+ pip install --find-links file:./dist numba-mpi
176
165
  cd /tmp # make sure local files are not picked up
177
166
  python -We -c "import numba_mpi"
178
167
 
@@ -0,0 +1,24 @@
1
+ name: urlcheck
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+ schedule:
9
+ - cron: '0 13 * * 4'
10
+
11
+ jobs:
12
+ url-check:
13
+ runs-on: ubuntu-24.04
14
+ steps:
15
+ - uses: actions/checkout@v4.1.6
16
+ - uses: urlstechie/urlchecker-action@master
17
+ with:
18
+ file_types: .md,.py,.json,.yaml,.yml,.toml,.txt,.cff
19
+ print_all: false
20
+ verbose: true
21
+ timeout: 7
22
+ retry_count: 3
23
+ exclude_files: .github/workflows/urlcheck.yml
24
+ exclude_urls: https://www.gnu.org/licenses/gpl-3.0.html
@@ -4,7 +4,7 @@ default_stages: [commit]
4
4
 
5
5
  repos:
6
6
  - repo: https://github.com/psf/black
7
- rev: 24.1.1
7
+ rev: 25.11.0
8
8
  hooks:
9
9
  - id: black
10
10
  exclude: ^tests/paper_listings/
@@ -1,13 +1,21 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: numba-mpi
3
- Version: 1.1.5
3
+ Version: 1.1.7
4
4
  Summary: Numba @jittable MPI wrappers tested on Linux, macOS and Windows
5
- Home-page: https://github.com/numba-mpi/numba-mpi
6
- Author: https://github.com/numba-mpi/numba-mpi/graphs/contributors
7
- License: GPL v3
5
+ Author-email: "https://github.com/numba-mpi/numba-mpi/graphs/contributors" <sylwester.arabas@agh.edu.pl>
6
+ License-Expression: GPL-3.0-only
8
7
  Project-URL: Tracker, https://github.com/numba-mpi/numba-mpi/issues
9
8
  Project-URL: Documentation, https://numba-mpi.github.io/numba-mpi
10
9
  Project-URL: Source, https://github.com/numba-mpi/numba-mpi
10
+ Keywords: MPI,numba
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Topic :: Scientific/Engineering
16
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
17
+ Classifier: Topic :: Scientific/Engineering :: Physics
18
+ Classifier: Topic :: Software Development :: Libraries
11
19
  Requires-Python: >=3.8
12
20
  Description-Content-Type: text/markdown
13
21
  License-File: LICENSE
@@ -16,19 +24,11 @@ Requires-Dist: numpy
16
24
  Requires-Dist: mpi4py
17
25
  Requires-Dist: psutil
18
26
  Provides-Extra: tests
19
- Requires-Dist: pytest<8.0.0; extra == "tests"
27
+ Requires-Dist: pytest; extra == "tests"
20
28
  Requires-Dist: py-pde; extra == "tests"
21
- Dynamic: author
22
- Dynamic: description
23
- Dynamic: description-content-type
24
- Dynamic: home-page
25
- Dynamic: license
29
+ Provides-Extra: ci-version-pins
30
+ Requires-Dist: pytest==9.0.1; extra == "ci-version-pins"
26
31
  Dynamic: license-file
27
- Dynamic: project-url
28
- Dynamic: provides-extra
29
- Dynamic: requires-dist
30
- Dynamic: requires-python
31
- Dynamic: summary
32
32
 
33
33
  # <img src="https://raw.githubusercontent.com/numba-mpi/numba-mpi/main/.github/numba_mpi_logo.png" width=128 height=142 alt="numba-mpi logo"> numba-mpi
34
34
 
@@ -37,7 +37,7 @@ Dynamic: summary
37
37
  [![Linux OK](https://img.shields.io/static/v1?label=Linux&logo=Linux&color=yellow&message=%E2%9C%93)](https://en.wikipedia.org/wiki/Linux)
38
38
  [![macOS OK](https://img.shields.io/static/v1?label=macOS&logo=Apple&color=silver&message=%E2%9C%93)](https://en.wikipedia.org/wiki/macOS)
39
39
  [![Windows OK](https://img.shields.io/static/v1?label=Windows&logo=Windows&color=white&message=%E2%9C%93)](https://en.wikipedia.org/wiki/Windows)
40
- [![Github Actions Status](https://github.com/numba-mpi/numba-mpi/workflows/tests+pypi/badge.svg?branch=main)](https://github.com/numba-mpi/numba-mpi/actions/workflows/tests+pypi.yml)
40
+ [![Github Actions Status](https://github.com/numba-mpi/numba-mpi/actions/workflows/tests+pypi.yml/badge.svg?branch=main)](https://github.com/numba-mpi/numba-mpi/actions/workflows/tests+pypi.yml)
41
41
  [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/numba-mpi/numba-mpi/graphs/commit-activity)
42
42
  [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.html)
43
43
  [![PyPI version](https://badge.fury.io/py/numba-mpi.svg)](https://pypi.org/project/numba-mpi)
@@ -62,9 +62,10 @@ Packages can be obtained from
62
62
 
63
63
  numba-mpi is a pure-Python package.
64
64
  The codebase includes a test suite used through the GitHub Actions workflows ([thanks to mpi4py's setup-mpi](https://github.com/mpi4py/setup-mpi)!)
65
- for automated testing on: Linux ([MPICH](https://www.mpich.org/), [OpenMPI](https://www.open-mpi.org/doc/)
65
+ for automated testing on: Intel Linux ([MPICH](https://www.mpich.org/), [OpenMPI](https://www.open-mpi.org/doc/)
66
66
  & [Intel MPI](https://www.intel.com/content/www/us/en/developer/tools/oneapi/mpi-library.html)),
67
- macOS ([MPICH](https://www.mpich.org/) & [OpenMPI](https://www.open-mpi.org/doc/)) and
67
+ ARM Linux ([MPICH](https://www.mpich.org/) & [OpenMPI](https://www.open-mpi.org/doc/)),
68
+ Intel and ARM macOS ([MPICH](https://www.mpich.org/)) and
68
69
  Windows ([MS MPI](https://docs.microsoft.com/en-us/message-passing-interface/microsoft-mpi)). Note, that some of those
69
70
  combinations may not be fully supported yet - see [Known Issues](#known-issues) for more information.
70
71
 
@@ -172,10 +173,7 @@ if numba_mpi.rank() == 0:
172
173
 
173
174
  **NOTE**: Issues listed below only relate to combinations of platforms and MPI distributions that we target to support, but due to various reason are currently not working and are temporarily excluded from automated testing:
174
175
 
175
- - tests on Ubuntu 2024.4 that use MPICH are not run due to failures caused by newer version of MPICH (`4.2.0`); note, that previous tests ran
176
- using version `4.0.2` of MPICH (that is installed by default on Ubuntu 2022.4 using `apt`) were passing (see [related issue](https://github.com/numba-mpi/numba-mpi/issues/162) - TODO #162),
177
- - tests on Intel MacOS (v13) that use OpenMPI are currently not run due to failures being under investigation (see [related issue](https://github.com/numba-mpi/numba-mpi/issues/163) - TODO #163),
178
- - `numba-mpi` currently does not support ARM-based MacOS, due to required code improvement (see [related issue](https://github.com/numba-mpi/numba-mpi/issues/164) - TODO #164).
176
+ - tests on MacOS (both Intel- and ARM-based) that use OpenMPI are currently not run due to failures being under investigation (see [related issue](https://github.com/numba-mpi/numba-mpi/issues/163) - TODO #163).
179
177
 
180
178
  ### MPI resources on the web:
181
179
 
@@ -192,7 +190,7 @@ using version `4.0.2` of MPICH (that is installed by default on Ubuntu 2022.4 us
192
190
  - Python/JAX: https://mpi4jax.readthedocs.io
193
191
  - Julia: https://juliaparallel.org/MPI.jl
194
192
  - Rust: https://docs.rs/mpi
195
- - C++: https://boost.org/doc/html/mpi.html
193
+ - C++: https://www.boost.org/doc/libs/latest/doc/html/mpi.html
196
194
  - R: https://cran.r-project.org/web/packages/Rmpi
197
195
 
198
196
  ### Acknowledgements:
@@ -1,11 +1,11 @@
1
- # <img src="https://raw.githubusercontent.com/numba-mpi/numba-mpi/main/.github/numba_mpi_logo.svg" width=128 height=142 alt="numba-mpi logo"> numba-mpi
1
+ # <img src="https://raw.githubusercontent.com/numba-mpi/numba-mpi/main/.github/numba_mpi_logo.png" width=128 height=142 alt="numba-mpi logo"> numba-mpi
2
2
 
3
3
  [![Python 3](https://img.shields.io/static/v1?label=Python&logo=Python&color=3776AB&message=3)](https://www.python.org/)
4
4
  [![LLVM](https://img.shields.io/static/v1?label=LLVM&logo=LLVM&color=gold&message=Numba)](https://numba.pydata.org)
5
5
  [![Linux OK](https://img.shields.io/static/v1?label=Linux&logo=Linux&color=yellow&message=%E2%9C%93)](https://en.wikipedia.org/wiki/Linux)
6
6
  [![macOS OK](https://img.shields.io/static/v1?label=macOS&logo=Apple&color=silver&message=%E2%9C%93)](https://en.wikipedia.org/wiki/macOS)
7
7
  [![Windows OK](https://img.shields.io/static/v1?label=Windows&logo=Windows&color=white&message=%E2%9C%93)](https://en.wikipedia.org/wiki/Windows)
8
- [![Github Actions Status](https://github.com/numba-mpi/numba-mpi/workflows/tests+pypi/badge.svg?branch=main)](https://github.com/numba-mpi/numba-mpi/actions/workflows/tests+pypi.yml)
8
+ [![Github Actions Status](https://github.com/numba-mpi/numba-mpi/actions/workflows/tests+pypi.yml/badge.svg?branch=main)](https://github.com/numba-mpi/numba-mpi/actions/workflows/tests+pypi.yml)
9
9
  [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/numba-mpi/numba-mpi/graphs/commit-activity)
10
10
  [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.html)
11
11
  [![PyPI version](https://badge.fury.io/py/numba-mpi.svg)](https://pypi.org/project/numba-mpi)
@@ -30,9 +30,10 @@ Packages can be obtained from
30
30
 
31
31
  numba-mpi is a pure-Python package.
32
32
  The codebase includes a test suite used through the GitHub Actions workflows ([thanks to mpi4py's setup-mpi](https://github.com/mpi4py/setup-mpi)!)
33
- for automated testing on: Linux ([MPICH](https://www.mpich.org/), [OpenMPI](https://www.open-mpi.org/doc/)
33
+ for automated testing on: Intel Linux ([MPICH](https://www.mpich.org/), [OpenMPI](https://www.open-mpi.org/doc/)
34
34
  & [Intel MPI](https://www.intel.com/content/www/us/en/developer/tools/oneapi/mpi-library.html)),
35
- macOS ([MPICH](https://www.mpich.org/) & [OpenMPI](https://www.open-mpi.org/doc/)) and
35
+ ARM Linux ([MPICH](https://www.mpich.org/) & [OpenMPI](https://www.open-mpi.org/doc/)),
36
+ Intel and ARM macOS ([MPICH](https://www.mpich.org/)) and
36
37
  Windows ([MS MPI](https://docs.microsoft.com/en-us/message-passing-interface/microsoft-mpi)). Note, that some of those
37
38
  combinations may not be fully supported yet - see [Known Issues](#known-issues) for more information.
38
39
 
@@ -140,10 +141,7 @@ if numba_mpi.rank() == 0:
140
141
 
141
142
  **NOTE**: Issues listed below only relate to combinations of platforms and MPI distributions that we target to support, but due to various reason are currently not working and are temporarily excluded from automated testing:
142
143
 
143
- - tests on Ubuntu 2024.4 that use MPICH are not run due to failures caused by newer version of MPICH (`4.2.0`); note, that previous tests ran
144
- using version `4.0.2` of MPICH (that is installed by default on Ubuntu 2022.4 using `apt`) were passing (see [related issue](https://github.com/numba-mpi/numba-mpi/issues/162) - TODO #162),
145
- - tests on Intel MacOS (v13) that use OpenMPI are currently not run due to failures being under investigation (see [related issue](https://github.com/numba-mpi/numba-mpi/issues/163) - TODO #163),
146
- - `numba-mpi` currently does not support ARM-based MacOS, due to required code improvement (see [related issue](https://github.com/numba-mpi/numba-mpi/issues/164) - TODO #164).
144
+ - tests on MacOS (both Intel- and ARM-based) that use OpenMPI are currently not run due to failures being under investigation (see [related issue](https://github.com/numba-mpi/numba-mpi/issues/163) - TODO #163).
147
145
 
148
146
  ### MPI resources on the web:
149
147
 
@@ -160,7 +158,7 @@ using version `4.0.2` of MPICH (that is installed by default on Ubuntu 2022.4 us
160
158
  - Python/JAX: https://mpi4jax.readthedocs.io
161
159
  - Julia: https://juliaparallel.org/MPI.jl
162
160
  - Rust: https://docs.rs/mpi
163
- - C++: https://boost.org/doc/html/mpi.html
161
+ - C++: https://www.boost.org/doc/libs/latest/doc/html/mpi.html
164
162
  - R: https://cran.r-project.org/web/packages/Rmpi
165
163
 
166
164
  ### Acknowledgements:
@@ -76,7 +76,8 @@ if LIB is None:
76
76
  if sys.platform == "darwin":
77
77
  raise RuntimeError(
78
78
  """MPI library not found, if MPI was installed with Homebrew, export the following:
79
- DYLD_FALLBACK_LIBRARY_PATH="/opt/homebrew/lib:/usr/lib:$DYLD_FALLBACK_LIBRARY_PATH
79
+ ARM: DYLD_FALLBACK_LIBRARY_PATH="/opt/homebrew/lib:/usr/lib:$DYLD_FALLBACK_LIBRARY_PATH
80
+ Intel: DYLD_FALLBACK_LIBRARY_PATH="/usr/local/lib:/usr/lib:$DYLD_FALLBACK_LIBRARY_PATH
80
81
  """
81
82
  )
82
83
  raise RuntimeError("no MPI library found")
@@ -1,13 +1,21 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: numba-mpi
3
- Version: 1.1.5
3
+ Version: 1.1.7
4
4
  Summary: Numba @jittable MPI wrappers tested on Linux, macOS and Windows
5
- Home-page: https://github.com/numba-mpi/numba-mpi
6
- Author: https://github.com/numba-mpi/numba-mpi/graphs/contributors
7
- License: GPL v3
5
+ Author-email: "https://github.com/numba-mpi/numba-mpi/graphs/contributors" <sylwester.arabas@agh.edu.pl>
6
+ License-Expression: GPL-3.0-only
8
7
  Project-URL: Tracker, https://github.com/numba-mpi/numba-mpi/issues
9
8
  Project-URL: Documentation, https://numba-mpi.github.io/numba-mpi
10
9
  Project-URL: Source, https://github.com/numba-mpi/numba-mpi
10
+ Keywords: MPI,numba
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Topic :: Scientific/Engineering
16
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
17
+ Classifier: Topic :: Scientific/Engineering :: Physics
18
+ Classifier: Topic :: Software Development :: Libraries
11
19
  Requires-Python: >=3.8
12
20
  Description-Content-Type: text/markdown
13
21
  License-File: LICENSE
@@ -16,19 +24,11 @@ Requires-Dist: numpy
16
24
  Requires-Dist: mpi4py
17
25
  Requires-Dist: psutil
18
26
  Provides-Extra: tests
19
- Requires-Dist: pytest<8.0.0; extra == "tests"
27
+ Requires-Dist: pytest; extra == "tests"
20
28
  Requires-Dist: py-pde; extra == "tests"
21
- Dynamic: author
22
- Dynamic: description
23
- Dynamic: description-content-type
24
- Dynamic: home-page
25
- Dynamic: license
29
+ Provides-Extra: ci-version-pins
30
+ Requires-Dist: pytest==9.0.1; extra == "ci-version-pins"
26
31
  Dynamic: license-file
27
- Dynamic: project-url
28
- Dynamic: provides-extra
29
- Dynamic: requires-dist
30
- Dynamic: requires-python
31
- Dynamic: summary
32
32
 
33
33
  # <img src="https://raw.githubusercontent.com/numba-mpi/numba-mpi/main/.github/numba_mpi_logo.png" width=128 height=142 alt="numba-mpi logo"> numba-mpi
34
34
 
@@ -37,7 +37,7 @@ Dynamic: summary
37
37
  [![Linux OK](https://img.shields.io/static/v1?label=Linux&logo=Linux&color=yellow&message=%E2%9C%93)](https://en.wikipedia.org/wiki/Linux)
38
38
  [![macOS OK](https://img.shields.io/static/v1?label=macOS&logo=Apple&color=silver&message=%E2%9C%93)](https://en.wikipedia.org/wiki/macOS)
39
39
  [![Windows OK](https://img.shields.io/static/v1?label=Windows&logo=Windows&color=white&message=%E2%9C%93)](https://en.wikipedia.org/wiki/Windows)
40
- [![Github Actions Status](https://github.com/numba-mpi/numba-mpi/workflows/tests+pypi/badge.svg?branch=main)](https://github.com/numba-mpi/numba-mpi/actions/workflows/tests+pypi.yml)
40
+ [![Github Actions Status](https://github.com/numba-mpi/numba-mpi/actions/workflows/tests+pypi.yml/badge.svg?branch=main)](https://github.com/numba-mpi/numba-mpi/actions/workflows/tests+pypi.yml)
41
41
  [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/numba-mpi/numba-mpi/graphs/commit-activity)
42
42
  [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.html)
43
43
  [![PyPI version](https://badge.fury.io/py/numba-mpi.svg)](https://pypi.org/project/numba-mpi)
@@ -62,9 +62,10 @@ Packages can be obtained from
62
62
 
63
63
  numba-mpi is a pure-Python package.
64
64
  The codebase includes a test suite used through the GitHub Actions workflows ([thanks to mpi4py's setup-mpi](https://github.com/mpi4py/setup-mpi)!)
65
- for automated testing on: Linux ([MPICH](https://www.mpich.org/), [OpenMPI](https://www.open-mpi.org/doc/)
65
+ for automated testing on: Intel Linux ([MPICH](https://www.mpich.org/), [OpenMPI](https://www.open-mpi.org/doc/)
66
66
  & [Intel MPI](https://www.intel.com/content/www/us/en/developer/tools/oneapi/mpi-library.html)),
67
- macOS ([MPICH](https://www.mpich.org/) & [OpenMPI](https://www.open-mpi.org/doc/)) and
67
+ ARM Linux ([MPICH](https://www.mpich.org/) & [OpenMPI](https://www.open-mpi.org/doc/)),
68
+ Intel and ARM macOS ([MPICH](https://www.mpich.org/)) and
68
69
  Windows ([MS MPI](https://docs.microsoft.com/en-us/message-passing-interface/microsoft-mpi)). Note, that some of those
69
70
  combinations may not be fully supported yet - see [Known Issues](#known-issues) for more information.
70
71
 
@@ -172,10 +173,7 @@ if numba_mpi.rank() == 0:
172
173
 
173
174
  **NOTE**: Issues listed below only relate to combinations of platforms and MPI distributions that we target to support, but due to various reason are currently not working and are temporarily excluded from automated testing:
174
175
 
175
- - tests on Ubuntu 2024.4 that use MPICH are not run due to failures caused by newer version of MPICH (`4.2.0`); note, that previous tests ran
176
- using version `4.0.2` of MPICH (that is installed by default on Ubuntu 2022.4 using `apt`) were passing (see [related issue](https://github.com/numba-mpi/numba-mpi/issues/162) - TODO #162),
177
- - tests on Intel MacOS (v13) that use OpenMPI are currently not run due to failures being under investigation (see [related issue](https://github.com/numba-mpi/numba-mpi/issues/163) - TODO #163),
178
- - `numba-mpi` currently does not support ARM-based MacOS, due to required code improvement (see [related issue](https://github.com/numba-mpi/numba-mpi/issues/164) - TODO #164).
176
+ - tests on MacOS (both Intel- and ARM-based) that use OpenMPI are currently not run due to failures being under investigation (see [related issue](https://github.com/numba-mpi/numba-mpi/issues/163) - TODO #163).
179
177
 
180
178
  ### MPI resources on the web:
181
179
 
@@ -192,7 +190,7 @@ using version `4.0.2` of MPICH (that is installed by default on Ubuntu 2022.4 us
192
190
  - Python/JAX: https://mpi4jax.readthedocs.io
193
191
  - Julia: https://juliaparallel.org/MPI.jl
194
192
  - Rust: https://docs.rs/mpi
195
- - C++: https://boost.org/doc/html/mpi.html
193
+ - C++: https://www.boost.org/doc/libs/latest/doc/html/mpi.html
196
194
  - R: https://cran.r-project.org/web/packages/Rmpi
197
195
 
198
196
  ### Acknowledgements:
@@ -5,12 +5,13 @@ CITATION.cff
5
5
  CODE_OF_CONDUCT.md
6
6
  LICENSE
7
7
  README.md
8
- setup.py
8
+ pyproject.toml
9
9
  .github/numba_mpi_logo.png
10
10
  .github/numba_mpi_logo.svg
11
11
  .github/workflows/readme_snippets.yml
12
12
  .github/workflows/stale.yml
13
13
  .github/workflows/tests+pypi.yml
14
+ .github/workflows/urlcheck.yml
14
15
  .vscode/settings.json
15
16
  numba_mpi/__init__.py
16
17
  numba_mpi/common.py
@@ -39,6 +40,7 @@ numba_mpi/api/size.py
39
40
  numba_mpi/api/wtime.py
40
41
  tests/__init__.py
41
42
  tests/common.py
43
+ tests/conftest.py
42
44
  tests/test_paper_listings.py
43
45
  tests/test_version.py
44
46
  tests/utils.py
@@ -3,6 +3,9 @@ numpy
3
3
  mpi4py
4
4
  psutil
5
5
 
6
+ [CI_version_pins]
7
+ pytest==9.0.1
8
+
6
9
  [tests]
7
- pytest<8.0.0
10
+ pytest
8
11
  py-pde
@@ -0,0 +1,45 @@
1
+ [tool.isort]
2
+ profile = "black"
3
+
4
+ [tool.setuptools_scm]
5
+ local_scheme = "no-local-version"
6
+ version_scheme = "post-release"
7
+
8
+ [tool.setuptools.packages.find]
9
+ include = ["numba_mpi", "numba_mpi*"]
10
+
11
+ [build-system]
12
+ requires = ['setuptools==80.9.0', 'setuptools-scm==9.0.1']
13
+ build-backend = "setuptools.build_meta"
14
+
15
+ [project]
16
+ name = "numba-mpi"
17
+ description = "Numba @jittable MPI wrappers tested on Linux, macOS and Windows"
18
+ keywords = ["MPI", "numba"]
19
+ license = "GPL-3.0-only"
20
+ readme = "README.md"
21
+ classifiers = [
22
+ "Development Status :: 4 - Beta",
23
+ "Intended Audience :: Science/Research",
24
+ "Operating System :: OS Independent",
25
+ "Programming Language :: Python :: 3",
26
+ "Topic :: Scientific/Engineering",
27
+ "Topic :: Scientific/Engineering :: Mathematics",
28
+ "Topic :: Scientific/Engineering :: Physics",
29
+ "Topic :: Software Development :: Libraries",
30
+ ]
31
+ requires-python = ">= 3.8"
32
+ authors = [
33
+ {name = "https://github.com/numba-mpi/numba-mpi/graphs/contributors", email = "sylwester.arabas@agh.edu.pl"}
34
+ ]
35
+ dynamic = ["version"]
36
+ dependencies = ["numba", "numpy", "mpi4py", "psutil"]
37
+
38
+ [project.optional-dependencies]
39
+ "tests" = ["pytest", "py-pde"]
40
+ "CI_version_pins" = ["pytest==9.0.1"]
41
+
42
+ [project.urls]
43
+ Tracker = "https://github.com/numba-mpi/numba-mpi/issues"
44
+ Documentation = "https://numba-mpi.github.io/numba-mpi"
45
+ Source = "https://github.com/numba-mpi/numba-mpi"
@@ -0,0 +1,7 @@
1
+ """sanity check ensuring that pytest session was run as an MPI task with more than one worker"""
2
+
3
+ import numba_mpi
4
+
5
+ assert (
6
+ numba_mpi.size() > 1
7
+ ), "the tests require multiple MPI workers - please run with `mpirun pytest ...`"
numba_mpi-1.1.5/setup.py DELETED
@@ -1,38 +0,0 @@
1
- """the magick behind ``pip install ...``"""
2
-
3
- from setuptools import find_packages, setup
4
-
5
-
6
- def get_long_description():
7
- """returns contents of README.md file"""
8
- with open("README.md", "r", encoding="utf8") as file:
9
- long_description = file.read()
10
- long_description = long_description.replace(
11
- "numba_mpi_logo.svg", "numba_mpi_logo.png"
12
- )
13
- return long_description
14
-
15
-
16
- setup(
17
- name="numba-mpi",
18
- url="https://github.com/numba-mpi/numba-mpi",
19
- author="https://github.com/numba-mpi/numba-mpi/graphs/contributors",
20
- use_scm_version={
21
- "local_scheme": "no-local-version",
22
- "version_scheme": "post-release",
23
- },
24
- python_requires=">=3.8",
25
- setup_requires=["setuptools_scm"],
26
- license="GPL v3",
27
- description="Numba @jittable MPI wrappers tested on Linux, macOS and Windows",
28
- install_requires=("numba", "numpy", "mpi4py", "psutil"),
29
- extras_require={"tests": ("pytest<8.0.0", "py-pde")}, # TODO #122
30
- long_description=get_long_description(),
31
- long_description_content_type="text/markdown",
32
- packages=find_packages(include=["numba_mpi", "numba_mpi.*"]),
33
- project_urls={
34
- "Tracker": "https://github.com/numba-mpi/numba-mpi/issues",
35
- "Documentation": "https://numba-mpi.github.io/numba-mpi",
36
- "Source": "https://github.com/numba-mpi/numba-mpi",
37
- },
38
- )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes