numba-mpi 0.43__py3-none-any.whl → 1.0.1__py3-none-any.whl
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.
- numba_mpi/__init__.py +2 -0
- numba_mpi/api/initialized.py +2 -1
- numba_mpi/api/rank.py +3 -2
- numba_mpi/api/size.py +3 -2
- {numba_mpi-0.43.dist-info → numba_mpi-1.0.1.dist-info}/METADATA +14 -6
- {numba_mpi-0.43.dist-info → numba_mpi-1.0.1.dist-info}/RECORD +9 -9
- {numba_mpi-0.43.dist-info → numba_mpi-1.0.1.dist-info}/WHEEL +1 -1
- {numba_mpi-0.43.dist-info → numba_mpi-1.0.1.dist-info}/LICENSE +0 -0
- {numba_mpi-0.43.dist-info → numba_mpi-1.0.1.dist-info}/top_level.txt +0 -0
numba_mpi/__init__.py
CHANGED
numba_mpi/api/initialized.py
CHANGED
numba_mpi/api/rank.py
CHANGED
@@ -15,8 +15,9 @@ _MPI_Comm_rank.argtypes = [_MpiComm, ctypes.c_void_p]
|
|
15
15
|
|
16
16
|
@numba.njit()
|
17
17
|
def rank():
|
18
|
-
"""wrapper for MPI_Comm_rank()"""
|
18
|
+
"""wrapper for MPI_Comm_rank(), in case of failure returns 0"""
|
19
19
|
value = np.empty(1, dtype=np.intc)
|
20
20
|
status = _MPI_Comm_rank(_mpi_addr(_MPI_Comm_World_ptr), value.ctypes.data)
|
21
|
-
|
21
|
+
if status != 0:
|
22
|
+
value[0] = 0
|
22
23
|
return value[0]
|
numba_mpi/api/size.py
CHANGED
@@ -15,8 +15,9 @@ _MPI_Comm_size.argtypes = [_MpiComm, ctypes.c_void_p]
|
|
15
15
|
|
16
16
|
@numba.njit()
|
17
17
|
def size():
|
18
|
-
"""wrapper for MPI_Comm_size()"""
|
18
|
+
"""wrapper for MPI_Comm_size(), in case of failure returns 0"""
|
19
19
|
value = np.empty(1, dtype=np.intc)
|
20
20
|
status = _MPI_Comm_size(_mpi_addr(_MPI_Comm_World_ptr), value.ctypes.data)
|
21
|
-
|
21
|
+
if status != 0:
|
22
|
+
value[0] = 0
|
22
23
|
return value[0]
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: numba-mpi
|
3
|
-
Version: 0.
|
4
|
-
Summary: Numba @
|
3
|
+
Version: 1.0.1
|
4
|
+
Summary: Numba @jittable MPI wrappers tested on Linux, macOS and Windows
|
5
5
|
Home-page: https://github.com/numba-mpi/numba-mpi
|
6
6
|
Author: https://github.com/numba-mpi/numba-mpi/graphs/contributors
|
7
7
|
License: GPL v3
|
@@ -17,8 +17,9 @@ Requires-Dist: mpi4py
|
|
17
17
|
Requires-Dist: psutil
|
18
18
|
Provides-Extra: tests
|
19
19
|
Requires-Dist: pytest <8.0.0 ; extra == 'tests'
|
20
|
+
Requires-Dist: py-pde ; extra == 'tests'
|
20
21
|
|
21
|
-
# <img src="https://raw.githubusercontent.com/numba-mpi/numba-mpi/main/.github/numba_mpi_logo.
|
22
|
+
# <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
|
22
23
|
|
23
24
|
[](https://www.python.org/)
|
24
25
|
[](https://numba.pydata.org)
|
@@ -34,7 +35,7 @@ Requires-Dist: pytest <8.0.0 ; extra == 'tests'
|
|
34
35
|
[](https://zenodo.org/badge/latestdoi/316911228)
|
35
36
|
|
36
37
|
### Overview
|
37
|
-
numba-mpi provides Python wrappers to the C MPI API callable from within [Numba JIT-compiled code](https://numba.readthedocs.io/en/stable/user/jit.html) (@
|
38
|
+
numba-mpi provides Python wrappers to the C MPI API callable from within [Numba JIT-compiled code](https://numba.readthedocs.io/en/stable/user/jit.html) (@jit mode). For an outline of the project, rationale, architecture, and features, refer to: [numba-mpi arXiv e-print](https://doi.org/10.48550/arXiv.2407.13712) (please cite if numba-mpi is used in your research).
|
38
39
|
|
39
40
|
Support is provided for a subset of MPI routines covering: `size`/`rank`, `send`/`recv`, `allreduce`, `bcast`, `scatter`/`gather` & `allgather`, `barrier`, `wtime`
|
40
41
|
and basic asynchronous communication with `isend`/`irecv` (only for contiguous arrays); for request handling including `wait`/`waitall`/`waitany` and `test`/`testall`/`testany`.
|
@@ -65,7 +66,7 @@ Features that are not implemented yet include (help welcome!):
|
|
65
66
|
```python
|
66
67
|
import numba, numba_mpi, numpy
|
67
68
|
|
68
|
-
@numba.
|
69
|
+
@numba.jit()
|
69
70
|
def hello():
|
70
71
|
src = numpy.array([1., 2., 3., 4., 5.])
|
71
72
|
dst_tst = numpy.empty_like(src)
|
@@ -168,6 +169,7 @@ if numba_mpi.rank() == 0:
|
|
168
169
|
- Intel MPI: https://intel.com/content/www/us/en/developer/tools/oneapi/mpi-library-documentation.html
|
169
170
|
- MPI bindings:
|
170
171
|
- Python: https://mpi4py.readthedocs.io
|
172
|
+
- Python/JAX: https://mpi4jax.readthedocs.io
|
171
173
|
- Julia: https://juliaparallel.org/MPI.jl
|
172
174
|
- Rust: https://docs.rs/mpi
|
173
175
|
- C++: https://boost.org/doc/html/mpi.html
|
@@ -175,5 +177,11 @@ if numba_mpi.rank() == 0:
|
|
175
177
|
|
176
178
|
### Acknowledgements:
|
177
179
|
|
178
|
-
|
180
|
+
We thank [all contributors](https://github.com/numba-mpi/numba-mpi/graphs/contributors) and users who reported feedback to the project
|
181
|
+
through [GitHub issues](https://github.com/numba-mpi/numba-mpi/issues).
|
182
|
+
|
183
|
+
Development of numba-mpi has been supported by the [Polish National Science Centre](https://ncn.gov.pl/en) (grant no. 2020/39/D/ST10/01220),
|
184
|
+
the [Max Planck Society](https://www.mpg.de/en) and the [European Union](https://erc.europa.eu/) (ERC, EmulSim, 101044662).
|
185
|
+
We further acknowledge Poland’s high-performance computing infrastructure [PLGrid](https://plgrid.pl) (HPC Centers: [ACK Cyfronet AGH](https://www.cyfronet.pl/en))
|
186
|
+
for providing computer facilities and support within computational grant no. PLG/2023/016369.
|
179
187
|
|
@@ -1,23 +1,23 @@
|
|
1
|
-
numba_mpi/__init__.py,sha256=
|
1
|
+
numba_mpi/__init__.py,sha256=_DsPxgrR80KiJTLqzZRNMVsK_TUJt7EfNFy_MWvBOWk,754
|
2
2
|
numba_mpi/common.py,sha256=2JJoUrd3Qa6GIFk6Zlt2NudS7ZurPxpVwBLRGSkCg5E,2266
|
3
3
|
numba_mpi/utils.py,sha256=gfGFuzmGgs4FnBqzPI91ftAq4UHgXb_HFkvxrVWkcIo,1866
|
4
4
|
numba_mpi/api/__init__.py,sha256=Zj5df4lWeGpxAXV8jKGFnmtLBQ50HwNU8dPf-os06X8,51
|
5
5
|
numba_mpi/api/allreduce.py,sha256=szS7YzrQ5a90LlKDiefyxVEiAXnsHbni5g2M1of0TmE,3261
|
6
6
|
numba_mpi/api/barrier.py,sha256=9VSJPBC4V0H-xo47uzlT8Hp4xmQhTNLxg5bAcX3Y03g,461
|
7
7
|
numba_mpi/api/bcast.py,sha256=8SsYFj9qRjx4l3Q9367JMZd469izlf4if1qusuYILqU,1843
|
8
|
-
numba_mpi/api/initialized.py,sha256=
|
8
|
+
numba_mpi/api/initialized.py,sha256=oKXpZzHeips0VU1U9wEF_578kOrfKb_IEXxD_aQ2c2E,497
|
9
9
|
numba_mpi/api/irecv.py,sha256=r4JvE7JJPN_hFpS79-idYL3dtp8tR0y0VoIRuHJ29lM,1120
|
10
10
|
numba_mpi/api/isend.py,sha256=2mpP4FhMk0GrikjDluKwRnpVywdLj9RD4HVVEMSj9A8,1080
|
11
11
|
numba_mpi/api/operator.py,sha256=3VTPZAdOP05bxdqt3lA0hRDICM-iaBMa4m-krEdO91s,342
|
12
|
-
numba_mpi/api/rank.py,sha256=
|
12
|
+
numba_mpi/api/rank.py,sha256=1xZvHUclsK20aMtK07JzXYxW5F4Er8HZgOmcf495sjo,597
|
13
13
|
numba_mpi/api/recv.py,sha256=YsYK-q7PNfi3zt0ftVddM363VsnJ4XFfmgMq8aeCr-o,1260
|
14
14
|
numba_mpi/api/requests.py,sha256=5EhgFyeQCGP8YclSPwxP95c2AhBo19CLlShK0TxCR2U,9114
|
15
15
|
numba_mpi/api/scatter_gather.py,sha256=goZn4BxMKakWQHjfXIOdjzK3DJ-lTeaiQQwgnyQeZ_s,2410
|
16
16
|
numba_mpi/api/send.py,sha256=jn1hPw0YHBHOaeJop_ZbjaBChaqgfw3nM1xGhW9sabI,909
|
17
|
-
numba_mpi/api/size.py,sha256
|
17
|
+
numba_mpi/api/size.py,sha256=-RX-FtcIH4qDxCoGOhZjjgEWXpytt79vsH0YX9dtZuY,597
|
18
18
|
numba_mpi/api/wtime.py,sha256=qrTqlefW7K7hqnAQKkGYm8kgdiRGuSAGiHmPcTrhLzE,279
|
19
|
-
numba_mpi-0.
|
20
|
-
numba_mpi-0.
|
21
|
-
numba_mpi-0.
|
22
|
-
numba_mpi-0.
|
23
|
-
numba_mpi-0.
|
19
|
+
numba_mpi-1.0.1.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
20
|
+
numba_mpi-1.0.1.dist-info/METADATA,sha256=Fp5jqI53wUJzoY-KreJqYy_tiXzuCyJNGQyuFEkYzC0,9887
|
21
|
+
numba_mpi-1.0.1.dist-info/WHEEL,sha256=uCRv0ZEik_232NlR4YDw4Pv3Ajt5bKvMH13NUU7hFuI,91
|
22
|
+
numba_mpi-1.0.1.dist-info/top_level.txt,sha256=yb_ktLmrfuhOZS0rjS81FFNC-gK_4c19WbLG2ViP73g,10
|
23
|
+
numba_mpi-1.0.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|