Pygion: Flexible, Scalable Task-Based Parallelism with Python
2019 IEEE/ACM Parallel Applications Workshop, Alternatives To MPI (PAW-ATM)(2019)
摘要
Dynamic languages provide the flexibility needed to implement expressive support for task-based parallel programming 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 implemented 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.
更多查看译文
关键词
task-based parallelism,Pygion,Legion,Python
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络