MPI for Python — MPI for Python 3.0.3 documentation

# MPI for Python

Abstract

This document describes the MPI for Python package. MPI for Python provides bindings of the Message Passing Interface (MPI) standard for the Python programming language, allowing any Python program to exploit multiple processors.

This package is constructed on top of the MPI-1/2/3 specifications and provides an object oriented interface which resembles the MPI-2 C++ bindings. It supports point-to-point (sends, receives) and collective (broadcasts, scatters, gathers) communications of any picklable Python object, as well as optimized communications of Python object exposing the single-segment buffer interface (NumPy arrays, builtin bytes/string/array objects)

- Introduction
  - What is MPI?
  - What is Python?
  - Related Projects
- Overview
  - Communicating Python Objects and Array Data
  - Communicators
  - Point-to-Point Communications
  - Collective Communications
  - Dynamic Process Management
  - One-Sided Communications
  - Parallel Input/Output
  - Environmental Management
- Tutorial
  - Running Python scripts with MPI
  - Point-to-Point Communication
  - Collective Communication
  - MPI-IO
  - Dynamic Process Management
  - Wrapping with SWIG
  - Wrapping with F2Py
- mpi4py.futures
  - concurrent.futures
  - MPIPoolExecutor
  - MPICommExecutor
  - Command line
  - Examples
- mpi4py.run
  - Interface options
- Citation
- Installation
  - Requirements
  - Using pip or easy_install
  - Using distutils
  - Testing
- Appendix
  - MPI-enabled Python interpreter
  - Building MPI from sources