English

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

Software Engineering 2023-05-17 v3

Abstract

Numba is a game-changing compiler for high-performance computing with Python. It produces machine code that runs outside of the single-threaded Python interpreter and that fully utilizes the resources of modern CPUs. This means support for parallel multithreading and auto vectorization if available, as with compiled languages such as C++ or Fortran. In this article we document our experience developing PyExaFMM, a multithreaded Numba implementation of the Fast Multipole Method, an algorithm with a non-linear data structure and a large amount of data organization. We find that designing performant Numba code for complex algorithms can be as challenging as writing in a compiled language.

Keywords

Cite

@article{arxiv.2303.08394,
  title  = {PyExaFMM: an exercise in designing high-performance software with Python and Numba},
  author = {Srinath Kailasa and Tingyu Wang and Lorena A. Barba and Timo Betcke},
  journal= {arXiv preprint arXiv:2303.08394},
  year   = {2023}
}

Comments

10 pages, 3 figures

R2 v1 2026-06-28T09:17:53.408Z