[ANN] mpi4py release 2.0.0

104 views
Skip to first unread message

Lisandro Dalcin

unread,
Oct 18, 2015, 7:15:30 AM10/18/15
to mpi4py
Release 2.0.0 [2015-10-18]
==========================

* 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()``)

* 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 the ``ERRORS_RETURN`` error handler in ``COMM_SELF``
and ``COMM_WORLD``, as well as any new ``Comm``, ``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 to ``ANY_SOURCE``,
``tag`` defaults to ``ANY_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()`` and ``Request.Testsome()``
to return ``None`` or ``list``.
+ Change signature of all lowercase-spelling collectives,
``sendobj`` arguments are now mandatory,
``recvobj`` arguments were removed.
+ Reduction operations ``MAXLOC`` and ``MINLOC`` are no longer
special-cased in lowercase-spelling methods ``Comm.[all]reduce()``
and ``Comm.[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()`` to ``Intracomm.Cart_map()``.
+ Move ``Graphcomm.Map()`` to ``Intracomm.Graph_map()``.
+ Remove the ``mpi4py.MPE`` module.
+ Rename the Cython definition file for use with ``cimport``
statement from ``mpi_c.pxd`` to ``libmpi.pxd``.


--
Lisandro Dalcin
============
Research Scientist
Computer, Electrical and Mathematical Sciences & Engineering (CEMSE)
Numerical Porous Media Center (NumPor)
King Abdullah University of Science and Technology (KAUST)
http://numpor.kaust.edu.sa/

4700 King Abdullah University of Science and Technology
al-Khawarizmi Bldg (Bldg 1), Office # 4332
Thuwal 23955-6900, Kingdom of Saudi Arabia
http://www.kaust.edu.sa

Office Phone: +966 12 808-0459

Yury V. Zaytsev

unread,
Oct 19, 2015, 3:28:15 PM10/19/15
to mpi...@googlegroups.com
On Sun, 2015-10-18 at 14:15 +0300, Lisandro Dalcin wrote:
> Release 2.0.0 [2015-10-18]

Congratulations, man!!!11

Awesome work... even though I'm not directly involved with projects
requiring MPI & Python anymore, I thought I'd tell you how much your
efforts are appreciated.

Keep it up!

--
Sincerely yours,
Yury V. Zaytsev


David Schneider

unread,
Aug 8, 2016, 1:36:06 PM8/8/16
to mpi4py
I have some code that is crashing with mpi4py 2.0.0 that worked with mpi4py 1.3.1. The line is

     allHostNames = comm.allgather(localHostName, None)

googling landed me here, I guess from the list below, I am supposed to call this now as

    allHostNames = comm.allgather(localHostName)

The below list of backward incompatible changes is getting me worried, if there are any other references or links people can recommend to help migrate to mpi4py 2.0.0, that would be appreciated.

best,

David

  + Change signature of all lowercase-spelling collectives, 
    ``sendobj`` arguments are now mandatory, 
    ``recvobj`` arguments were removed. 



Lisandro Dalcin

unread,
Aug 8, 2016, 1:59:17 PM8/8/16
to mpi4py
On 8 August 2016 at 20:36, David Schneider <david...@gmail.com> wrote:
> I have some code that is crashing with mpi4py 2.0.0 that worked with mpi4py
> 1.3.1. The line is
>
> allHostNames = comm.allgather(localHostName, None)
>
> googling landed me here, I guess from the list below, I am supposed to call
> this now as
>
> allHostNames = comm.allgather(localHostName)
>

Yes, the "recvobj" argument for lower-case collectives had no purpose,
it was optional and totally ignored if provided, and people usually
got confused about it, so I decided to kill them all.

> The below list of backward incompatible changes is getting me worried, if
> there are any other references or links people can recommend to help migrate
> to mpi4py 2.0.0, that would be appreciated.
>

The list of backward-incompatible changes for release 2.0.0
https://bitbucket.org/mpi4py/mpi4py/src/master/CHANGES.rst is my best
attempt to summarize these changes. Hopefully, I have not missed any
or them. In case of doubt or trouble, just drop us an email here.

Please note that mosts of these changes are sort of forward
compatible. If you update your code to 2.0.0, most of the changes (at
least the ones related to point to point and collectives) will still
work with the previous release 1.3.1.


--
Lisandro Dalcin
============
Research Scientist
Computer, Electrical and Mathematical Sciences & Engineering (CEMSE)
Extreme Computing Research Center (ECRC)
King Abdullah University of Science and Technology (KAUST)
http://ecrc.kaust.edu.sa/

4700 King Abdullah University of Science and Technology
al-Khawarizmi Bldg (Bldg 1), Office # 0109
Reply all
Reply to author
Forward
0 new messages