### Navigation

- MPI for Python v1.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 specifications and provides an object oriented interface which closely follows 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
- Design and Interface 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
- Installation
  - Requirements
  - Using pip or easy_install
  - Using distutils
- Tutorial
  - Point-to-Point Communication
  - Collective Communication
  - Dynamic Process Management
  - Wrapping with SWIG
  - Wrapping with F2Py
- Appendix
  - MPI-enabled Python interpreter
  - Mac OS X and Universal/SDK Python builds
  - Building MPI from sources

### Navigation

- MPI for Python v1.3 documentation »