AutoParallel: Automatic parallelisation and distributed execution of affine loop nests in Python

Abstract

The last improvements in programming languages and models have focused on simplicity and abstraction; leading Python to the top of the list of the programming languages. 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 parallelisation of affine loop nests to execute them in parallel in a distributed computing infrastructure. This parallelisation can also include the building of data blocks to increase tasks’ 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.

Publication
International Journal of High-Performance Computing Applications

Keywords

Avatar
Cristián Ramón-Cortés Vilarrodona
PhD

Dr. Cristián Ramón-Cortés Vilarrodona works as a Senior Software Engineer at Dynatrace.

comments powered by Disqus

Related