Automatic Optimization of Python Skeletal Parallel Programs

Abstract : Skeletal parallelism is a model of parallelism where parallel constructs are provided to the programmer as usual patterns of parallel algorithms. High-level skeleton libraries often offer a global view of programs instead of the common Single Program Multiple Data view in parallel programming. A program is written as a sequential program but operates on parallel data structures. Most of the time, skeletons on a parallel data structure have counterparts on a sequential data structure. For example, the map function that applies a given function to all the elements of a sequential collection (e.g., a list) has a map skeleton counterpart that applies a sequential function to all the elements of a distributed collection. Two of the challenges a programmer faces when using a skeleton library that provides a wide variety of skeletons are: which are the skeletons to use, and how to compose them? These design decisions may have a large impact on the performance of the parallel programs. However, skeletons, especially when they do not mutate the data structure they operate on, but are rather implemented as pure functions , possess algebraic properties that allow to transform compositions of skeletons into more efficient compositions of skeletons. In this paper, we present such an automatic transformation framework for the Python skeleton library PySke and evaluate it on several example applications.
Document type :
Conference papers
Complete list of metadatas

Cited literature [23 references]  Display  Hide  Download

https://hal.archives-ouvertes.fr/hal-02317123
Contributor : Frédéric Loulergue <>
Submitted on : Tuesday, October 15, 2019 - 7:05:05 PM
Last modification on : Wednesday, October 23, 2019 - 4:03:52 PM

File

main.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-02317123, version 1

Citation

Frédéric Loulergue, Jolan Philippe. Automatic Optimization of Python Skeletal Parallel Programs. 19th International Conference on Algorithms and Architectures for Parallel Processing (ICA3PP), Dec 2019, Melbourne, Australia. ⟨hal-02317123⟩

Share

Metrics

Record views

42

Files downloads

24