-
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_RETURN
error handler inCOMM_SELF
andCOMM_WORLD
, as well as any newComm
,Win
, or
File
instance 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,
dest
is a required argument. - Change signature of all receive and probe methods,
source
defaults toANY_SOURCE
,
tag
defaults toANY_TAG
. - Change signature of send lowercase-spelling methods,
obj
arguments are not mandatory. - Change signature of recv lowercase-spelling methods,
renamed 'obj' arguments to 'buf'. - Change
Request.Waitsome()
andRequest.Testsome()
to returnNone
orlist
. - Change signature of all lowercase-spelling collectives,
sendobj
arguments are now mandatory,
recvobj
arguments were removed. - Reduction operations
MAXLOC
andMINLOC
are 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)```. Win
instances 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.MPE
module. - Rename the Cython definition file for use with
cimport
statement frommpi_c.pxd
tolibmpi.pxd
.