pPython for Parallel Python Programming
Chansup Byun, William Arcand, David Bestor, Bill Bergeron, Vijay, Gadepally, Michael Houle, Matthew Hubbell, Hayden Jananthan, Michael Jones,, Kurt Keville, Anna Klein, Peter Michaleas, Lauren Milechin, Guillermo, Morales, Julie Mullen, Andrew Prout, Albert Reuther, Antonio Rosa

TL;DR
pPython is a Python library that enables easy-to-use parallel programming with distributed arrays, supporting flexible data redistribution and scalable performance on heterogeneous systems, including HPC environments.
Contribution
It introduces a PGAS model implementation in pure Python with transparent communication and redistribution, facilitating scalable parallel computing without complex programming.
Findings
Demonstrates scalability on HPC Challenge benchmark suite
Supports redistribution among various block-cyclic distributions
Operates seamlessly across heterogeneous systems and schedulers
Abstract
pPython seeks to provide a parallel capability that provides good speed-up without sacrificing the ease of programming in Python by implementing partitioned global array semantics (PGAS) on top of a simple file-based messaging library (PythonMPI) in pure Python. The core data structure in pPython is a distributed numerical array whose distribution onto multiple processors is specified with a map construct. Communication operations between distributed arrays are abstracted away from the user and pPython transparently supports redistribution between any block-cyclic-overlapped distributions in up to four dimensions. pPython follows a SPMD (single program multiple data) model of computation. pPython runs on any combination of heterogeneous systems that support Python, including Windows, Linux, and MacOS operating systems. In addition to running transparently on single-node (e.g., a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Parallel Computing and Optimization Techniques · Scientific Computing and Data Management
