AutoParallel: A Python module for automatic parallelization and distributed execution of affine loop nests

10/26/2018
by   Cristian Ramon-Cortes, et al.
0

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 module to automatically find an appropriate task-based parallelization of affine loop nests to execute them in parallel in a distributed computing infrastructure. This parallelization can also include the building of data blocks to increase task granularity in order to achieve a good execution performance. Moreover, AutoParallel is based on sequential programming and only contains a small annotation in the form of a Python decorator so that anyone with little programming skills can scale up an application to hundreds of cores.

READ FULL TEXT

page 2

page 4

page 8

research
11/26/2022

Approaches to the Parallelization of Merge Sort in Python

The theory of divide-and-conquer parallelization has been well-studied i...
research
07/06/2021

Toward Interlanguage Parallel Scripting for Distributed-Memory Scientific Computing

Scripting languages such as Python and R have been widely adopted as too...
research
05/06/2019

Parsl: Pervasive Parallel Programming in Python

High-level programming languages such as Python are increasingly used to...
research
11/01/2022

Excel Spreadsheet Analyzer

Spreadsheets are widely used in various fields to do large numerical ana...
research
10/25/2022

Comparing neural network training performance between Elixir and Python

With a wide range of libraries focused on the machine learning market, s...
research
08/07/2023

Enhancing iteration performance on distributed task-based workflows

Task-based programming models have proven to be a robust and versatile w...
research
01/16/2019

Predicting Variable Types in Dynamically Typed Programming Languages

Dynamic Programming Languages are quite popular because they increase th...

Please sign up or login with your details

Forgot password? Click here to reset