AutoParallel: A Python module for automatic parallelization and distributed execution of affine loop nests
Cristian Ramon-Cortes, Ramon Amela, Jorge Ejarque, Philippe, Clauss, Rosa M. Badia

TL;DR
AutoParallel is a Python module that automatically parallelizes affine loop nests for distributed execution, simplifying parallel programming with minimal user effort and annotations.
Contribution
It introduces an easy-to-use Python decorator-based tool that automatically finds parallelization strategies for affine loops in distributed environments.
Findings
Effective automatic parallelization of affine loop nests.
Improved execution performance through data block building.
Minimal user annotations required for scaling.
Abstract
The last improvements in programming languages, programming models, and frameworks have focused on abstracting the users from many programming issues. Among others, recent programming frameworks include simpler syntax, automatic memory management and garbage collection, which simplifies code re-usage through library packages, and easily configurable tools for deployment. For instance, Python has risen to the top of the list of the programming languages due to the simplicity of its syntax, while still achieving a good performance even being an interpreted language. Moreover, the community has helped to develop a large number of libraries and modules, tuning them to obtain great performance. However, there is still room for improvement when preventing users from dealing directly with distributed and parallel computing issues. This paper proposes and evaluates AutoParallel, a Python…
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
TopicsParallel Computing and Optimization Techniques · Advanced Data Storage Technologies · Scientific Computing and Data Management
