Productivity, Portability, Performance: Data-Centric Python

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

READ FULL TEXT

page 1

page 7

research
11/04/2022

Bridging HPC Communities through the Julia Programming Language

The Julia programming language has evolved into a modern alternative to ...
research
03/10/2023

Evaluating performance and portability of high-level programming models: Julia, Python/Numba, and Kokkos on exascale nodes

We explore the performance and portability of the high-level programming...
research
11/08/2021

Performance Evaluation of Python Parallel Programming Models: Charm4Py and mpi4py

Python is rapidly becoming the lingua franca of machine learning and sci...
research
12/01/2020

Python Workflows on HPC Systems

The recent successes and wide spread application of compute intensive ma...
research
07/03/2018

FluidSim: modular, object-oriented Python package for high-performance CFD simulations

The Python package fluidsim is introduced in this article as an extensib...
research
05/09/2022

Productive Performance Engineering for Weather and Climate Modeling with Python

Earth system models are developed with a tight coupling to target hardwa...
research
03/15/2023

PyExaFMM: an exercise in designing high-performance software with Python and Numba

Numba is a game-changing compiler for high-performance computing with Py...

Please sign up or login with your details

Forgot password? Click here to reset