MPI for Python: Performance improvements and MPI-2 extensions

Lisandro Dalcín*, Rodrigo Paz, Mario Storti, Jorge D'Elía

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

218 Scopus citations

Abstract

MPI for Python provides bindings of the message passing interface (MPI) standard for the Python programming language and allows any Python program to exploit multiple processors. In its first release, MPI for Python was constructed on top of the MPI-1 specification defining an object-oriented interface that closely followed the MPI-2 C ++ bindings, and provided support for communications of general Python objects. In the latest release, this package is improved to enable direct blocking/non-blocking communication of numeric arrays, and to support almost all MPI-2 features. Improvements in communication performance have been tested in a Beowulf class cluster. Results showed a negligible overhead in comparison to compiled C code. MPI for Python is open source and available for download on the web (http://mpi4py.scipy.org/).

Original languageEnglish (US)
Pages (from-to)655-662
Number of pages8
JournalJournal of Parallel and Distributed Computing
Volume68
Issue number5
DOIs
StatePublished - May 2008
Externally publishedYes

Bibliographical note

Funding Information:
The core of MPI for Python is implemented as an extension module written in C in order to access and take advantage of any other MPI implementation providing a C interface. The exposed Python interface is implemented with Python code defining the relevant class hierarchies, functions, and constants. This higher-level code is supported by the C extension module.

Keywords

  • High-level languages
  • MPI
  • Message passing
  • Parallel Python

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture
  • Computer Networks and Communications
  • Artificial Intelligence

Fingerprint

Dive into the research topics of 'MPI for Python: Performance improvements and MPI-2 extensions'. Together they form a unique fingerprint.

Cite this