Brussels / 4 & 5 February 2023



Numba @njittable MPI wrappers tested on Linux, macOS and Windows

We introduce the numba-mpi project, which offers access to the C language Message Passing Interface (MPI) routines from within Numba-JIT-compiled Python code. As a result, high-performance LLVM-accelerated Python code may use MPI communication facilities without leaving the "nopython" mode (still being usable, e.g. for debugging purposes, with the JIT compilation disabled). The numba-mpi API constitutes a thin wrapper around the MPI C API and is built around the Numpy arrays including handling of non-contiguous views over Numpy array slices. The package is implemented in pure Python and depends on numpy, numba and mpi4py (the last dependency is used at initialisation only). Package releases are available on PyPI ( and Conda Forge ( Project development is hosted at Github leveraging the mpi4py/setup-mpi workflow enabling continuous integration tests on Linux (MPICH, OpenMPI & Intel MPI), macOS (MPICH & OpenMPI) and Windows (MS MPI). Auto-generated docstring-based API docs are maintained at: The project is in continuous development (size/rank, send/recv, allreduce, bcast & barrier available and covered by unit tests as of time of writing). We welcome feedback and contributions.


Photo of Sylwester Arabas Sylwester Arabas
Oleksii Bulenok
Kacper Derlatka