-
Support for MPI-3 features.
- Matched probes and receives.
- Nonblocking collectives.
- Neighborhood collectives.
- New communicator constructors.
- Request-based RMA operations.
- New RMA communication and synchronisation calls.
- New window constructors.
- New datatype constructor.
- New C++ boolean and floating complex datatypes.
-
Support for MPI-2 features not included in previous releases.
- Generalized All-to-All collective (
Comm.Alltoallw()) - User-defined data representations (
Register_datarep())
- Generalized All-to-All collective (
-
New scalable implementation of reduction operations for Python
objects. This code is based on binomial tree algorithms using
point-to-point communication and duplicated communicator
contexts. To disable this feature, use
mpi4py.rc.fast_reduce = False. -
Backward-incompatible changes:
- Python 2.4, 2.5, 3.0 and 3.1 are no longer supported.
- Default MPI error handling policies are overriden. After import,
mpi4py sets theERRORS_RETURNerror handler inCOMM_SELF
andCOMM_WORLD, as well as any newComm,Win, or
Fileinstance created through mpi4py, thus effectively
ignoring the MPI rules about error handler inheritance. This way,
MPI errors translate to Python exceptions. To disable this
behavior and use the standard MPI error handling rules, use
mpi4py.rc.errors = 'default'. - Change signature of all send methods,
destis a required argument. - Change signature of all receive and probe methods,
sourcedefaults toANY_SOURCE,
tagdefaults toANY_TAG. - Change signature of send lowercase-spelling methods,
objarguments are not mandatory. - Change signature of recv lowercase-spelling methods,
renamed 'obj' arguments to 'buf'. - Change
Request.Waitsome()andRequest.Testsome()
to returnNoneorlist. - Change signature of all lowercase-spelling collectives,
sendobjarguments are now mandatory,
recvobjarguments were removed. - Reduction operations
MAXLOCandMINLOCare no longer
special-cased in lowercase-spelling methodsComm.[all]reduce()
andComm.[ex]scan(), the input object must be specified as a
tuple(obj, location). - Change signature of name publishing functions.
The new signatures are
Publish_name(service_name, port_name, info=INFO_NULL)and
``Unpublish_name(service_name, port_name, info=INFO_NULL)```. Wininstances now cache Python objects exposing memory by
keeping references instead of using MPI attribute caching.- Change signature of
Win.Lock().
The new signature is
Win.Lock(rank, lock_type=LOCK_EXCLUSIVE, assertion=0). - Move
Cartcomm.Map()toIntracomm.Cart_map(). - Move
Graphcomm.Map()toIntracomm.Graph_map(). - Remove the
mpi4py.MPEmodule. - Rename the Cython definition file for use with
cimport
statement frommpi_c.pxdtolibmpi.pxd.