Python at Petascale With PyFR or: How I Learned to Stop Worrying and Love the Snake
Freddie Witherden · Computing in Science & Engineering · 2021
In this work, we make the case for Python as a first-class language for high-performance computing (HPC) applications. Our rationale is based on three trends: an increasing desire for applications to be user friendly; the shift toward such applications becoming primarily consumers of third-party application programming interfaces; and growing use of code generation for performance sensitive kernels. In each instance, we argue why Python is better placed to ride these trends than traditional languages such as C or Fortran. Further, we will also address two additional concerns regarding the suitability of Python: long start-up times and limited support for multithreading. An as exemplar of Python in HPC, we consider the high-order computational fluid dynamics code PyFR. The novel architecture of PyFR is described including examples showcasing its domain-specific language.