Parallel distributed computing using Python

Lisandro D. Dalcin*, Rodrigo R. Paz, Pablo A. Kler, Alejandro Cosimo

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

334 Scopus citations


This work presents two software components aimed to relieve the costs of accessing high-performance parallel computing resources within a Python programming environment: MPI for Python and PETSc for Python. MPI for Python is a general-purpose Python package that provides bindings for the Message Passing Interface (MPI) standard using any back-end MPI implementation. Its facilities allow parallel Python programs to easily exploit multiple processors using the message passing paradigm. PETSc for Python provides access to the Portable, Extensible Toolkit for Scientific Computation (PETSc) libraries. Its facilities allow sequential and parallel Python applications to exploit state of the art algorithms and data structures readily available in PETSc for the solution of large-scale problems in science and engineering.MPI for Python and PETSc for Python are fully integrated to PETSc-FEM, an MPI and PETSc based parallel, multiphysics, finite elements code developed at CIMEC laboratory. This software infrastructure supports research activities related to simulation of fluid flows with applications ranging from the design of microfluidic devices for biochemical analysis to modeling of large-scale stream/aquifer interactions.

Original languageEnglish (US)
Pages (from-to)1124-1139
Number of pages16
JournalAdvances in Water Resources
Issue number9
StatePublished - Sep 2011
Externally publishedYes


  • MPI
  • PETSc
  • Python

ASJC Scopus subject areas

  • Water Science and Technology


Dive into the research topics of 'Parallel distributed computing using Python'. Together they form a unique fingerprint.

Cite this