==========================
.. warning:: This is the last release supporting Python 2.
* New features:
+ `mpi4py.util`: New package collecting miscellaneous utilities.
* Enhancements:
+ Add pickle-based ``Request.waitsome()`` and ``Request.testsome()``.
+ Add lowercase methods ``Request.get_status()`` and ``Request.cancel()``.
+ Support for passing Python GPU arrays compliant with the `DLPack`_ data
interchange mechanism (`link <DIM_>`_) and the ``__cuda_array_interface__``
(CAI) standard (`link <CAI_>`_) to uppercase methods. This support requires
that mpi4py is built against `CUDA-aware MPI <CAM_>`_ implementations. This
feature is currently experimental and subject to future changes.
+ `mpi4py.futures`: Add support for initializers and canceling futures at shutdown.
Environment variables names now follow the pattern ``MPI4PY_FUTURES_*``, the
previous ``MPI4PY_*`` names are deprecated.
+ Add type annotations to Cython code. The first line of the docstring of functions
and methods displays a signature including type annotations.
+ Add companion stub files to support type checkers.
+ Support for weak references.
* Miscellaneous:
+ Add a new mpi4py publication (`link <DOI_>`_) to the citation listing.
.. _DLPack: https://github.com/dmlc/dlpack
.. _DIM: https://data-apis.org/array-api/latest/design_topics/data_interchange.html
.. _CAI: https://numba.readthedocs.io/en/stable/cuda/cuda_array_interface.html
.. _CAM: https://developer.nvidia.com/blog/introduction-cuda-aware-mpi/
.. _DOI: https://doi.org/10.1109/MCSE.2021.3083216