SC21 Proceedings

The International Conference for High Performance Computing, Networking, Storage, and Analysis

Productivity, Portability, Performance: Data-Centric Python

Authors: Alexandos Nikolaos Ziogas, Timo Schneider, Tal Ben-Nun, Alexandru Calotoiu, Tiziano De Matteis, Johannes de Fine Licht, Luca Lavarini, and Torsten Hoefler (ETH Z├╝rich)

Abstract: 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. The Python language itself, however, 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.

Back to Technical Papers Archive Listing