-
New features:
- Publish binary wheel packages on PyPI with support for multiple operating systems (Linux, macOS, Windows), processor architectures (AMD64, ARM64), MPI implementations (MPICH, Open MPI, and their ABI-compatible derivatives), and Python implementations (CPython, PyPy).
- Add support for the MPI 5.0 standard.
- MPI handle serialization with integral values.
- Fixed-size Fortran
LOGICALdatatypes. - Query ABI version/info and Fortran ABI info.
MPI.Datatype.Create_contiguousnow uses BigMPI's approach when using MPI implementations that do not yet support the MPI 4.0 large-count APIs.- Add support for
MPI.FLOAT16_TandMPI.BFLOAT16_Tdatatypes. These datatypes are not yet standard but available as extensions in MPI implementations. - Add
MPI.Status.tomemoryto expose the status contents as amemoryviewobject.
-
Enhancements:
- Support (opt-in via
MPI4PY_BUILD_PYSABI) for building withPy_LIMITED_APIunder Python 3.10+ (requires Cython 3.1+). - Support (opt-in via
MPI4PY_BUILD_MPIABI) for building with the MPI 5.0 standard ABI and the MPICH or Open MPI legacy ABIs. TheMPIextension module will be able to dynamically link at runtime with older versions (down to the MPI 3.0 standard) of the MPI implementation used at compile time. Only available on Linux, macOS, and Windows. - Support a
buffersizeparameter in theMPIPoolExecutor.map()andMPIPoolExecutor.starmap()methods to limit the number of pending tasks. - Improve ownership management of DLPack capsules.
- Reimplement MPI DLL search path on Windows.
- Minor fixes to typing stubs and documentation.
- Support (opt-in via
-
Backward-incompatible changes:
- Python 3.8+ is required.
- The
MPI.Exceptionclass is now a heap type. - The types of the
MPI.BOTTOM,MPI.IN_PLACE, andMPI.BUFFER_AUTOMATICare no longer subclasses ofint.