arXiv · 2303.08394
PyExaFMM: an exercise in designing high-performance software with Python and Numba
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.
Explore related subjects
Keep this discovery
Srinath Kailasa, Tingyu Wang, Lorena A. Barba, Timo Betcke. 2023-03-15. PyExaFMM: an exercise in designing high-performance software with Python and Numba. https://doi.org/10.1109/mcse.2023.3258288
Cite the original work for its findings. Save a collection to share your selection of sources.