-
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
LOGICAL
datatypes. - Query ABI version/info and Fortran ABI info.
MPI.Datatype.Create_contiguous
now 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_T
andMPI.BFLOAT16_T
datatypes. These datatypes are not yet standard but available as extensions in MPI implementations. - Add
MPI.Status.tomemory
to expose the status contents as amemoryview
object.
-
Enhancements:
- Support (opt-in via
MPI4PY_BUILD_PYSABI
) for building withPy_LIMITED_API
under 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. TheMPI
extension 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
buffersize
parameter 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.Exception
class is now a heap type. - The types of the
MPI.BOTTOM
,MPI.IN_PLACE
, andMPI.BUFFER_AUTOMATIC
are no longer subclasses ofint
.