Litcius/Paper detail

Productivity, portability, performance

Alexandros Nikolaos Ziogas, Timo Schneider, Tal Ben‐Nun, Alexandru Calotoiu, Tiziano De Matteis, Johannes de Fine Licht, Luca Lavarini, Torsten Hoefler

202131 citationsDOI

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. 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.

Topics & Concepts

Python (programming language)Computer scienceSoftware portabilityWorkflowSupercomputerOperating systemParallel computingField-programmable gate arrayComputer architectureProgramming languageDatabaseParallel Computing and Optimization TechniquesAdvanced Data Storage TechnologiesComputational Physics and Python Applications
Productivity, portability, performance | Litcius