Abstract
MPI for Python (mpi4py) has evolved to become the most used Python binding for the message passing interface (MPI). We report on various improvements and features that mpi4py gradually accumulated over the past decade, including support up to the MPI-3.1 specification, support for CUDA-aware MPI implementations, and other utilities at the intersection of MPI-based parallel distributed computing and Python application development.
Highlights
THE MESSAGE PASSING INTERFACE (MPI) is a standardized application program interface (API) targeting parallel distributed computing and featuring a message-passing paradigm for interprocess communication
We review some generalities about mpi4py to set the stage for subsequent discussions
We comment on the codebase modernization mpi4py underwent before its 1.0 release
Summary
We present some recent mpi4py features, such as a new package for asynchronous task execution and support for efficient picklebased communication of large-size buffer-like Python objects. Mpi4py supports point-to-point and collective communication of generic Python objects by taking advantage of Python’s pickle protocol.. Mpi4py supports point-to-point and collective communication of generic Python objects by taking advantage of Python’s pickle protocol.6 This approach involves serialization (deserialization) before (after) issuing any MPI communication. Mpi4py features efficient communication of array-like Python objects via Python’s buffer protocol.. Mpi4py features efficient communication of array-like Python objects via Python’s buffer protocol.7 This buffer-based communication mode has negligible overhead. The most important components in the MPI module are the Comm, Win, and File classes, whose various methods support point-to-point and collective communication, one-sided operations, and parallel I/O, respectively
Published Version (Free)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have