Alexandros Nikolaos Ziogas, Timo Schneider, Tal Ben-Nun, Alexandru Calotoiu, Tiziano De Matteis, Johannes de Fine Licht, Luca Lavarini, Torsten Hoefler:
Python has become the de facto language for scientific computing.
Programming in Python is highly productive, mainly due to its rich science-oriented software ecosystem built around the NumPy module.
As a result, the demand for Python support in High Performance Computing (HPC) has skyrocketed.
However, the Python language itself does not necessarily offer high performance.
In this work, we present a workflow that retains Python's high productivity while achieving portable performance across different architectures.
The workflow's key features are HPC-oriented language extensions and a set of automatic optimizations powered by a data-centric intermediate representation.
We show performance results and scaling across CPU, GPU, FPGA, and the Piz Daint supercomputer (up to 23,328 cores), with 2.47x and 3.75x speedups over previous-best solutions, first-ever Xilinx and Intel FPGA results of annotated Python, and up to 93.16% scaling efficiency on 512 nodes.
@inproceedings{, author={ Alexandros Nikolaos Ziogas and Timo Schneider and Tal Ben-Nun and Alexandru Calotoiu and Tiziano De Matteis and Johannes de Fine Licht and Luca Lavarini and Torsten Hoefler}, title={{Productivity, Portability, Performance: Data-Centric Python}}, year={2021}, month={Nov.}, booktitle={Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC21)}, source={http://www.unixer.de/~htor/publications/}, }