Pygion: Flexible, Scalable Task-Based Parallelism with Python

Dynamic languages provide the flexibility needed to implement expressive support for task-based parallel program- ming constructs. We present Pygion, a Python interface for the Legion task-based programming system, and show that it can provide features comparable to Regent, a statically typed progra...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:2019 IEEE/ACM Parallel Applications Workshop, Alternatives To MPI (PAW-ATM) s. 58 - 72
Hlavní autoři: Slaughter, Elliott, Aiken, Alex
Médium: Konferenční příspěvek
Jazyk:angličtina
Vydáno: IEEE 01.11.2019
Témata:
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:Dynamic languages provide the flexibility needed to implement expressive support for task-based parallel program- ming constructs. We present Pygion, a Python interface for the Legion task-based programming system, and show that it can provide features comparable to Regent, a statically typed programming language with dedicated support for the Legion programming model. Furthermore, we show that the dynamic nature of Python permits the implementation of several key optimizations (index launches, futures, mapping) currently imple- mented in the Regent compiler. Together these features enable Pygion code that is comparable in expressiveness but more flexible than Regent, and substantially more concise, less error prone, and easier to use than C++ Legion code. Pygion is designed to interoperate with Regent and can use Regent to generate high- performance CPU and GPU kernel implementations. We show that, in combination with high-performance kernels written in Regent, Pygion is able to achieve efficient, scalable execution on up to 512 nodes of the heterogeneous supercomputer Piz Daint.
DOI:10.1109/PAW-ATM49560.2019.00011