Kailasa, Srinath;
Wang, Tingyu;
Barba, Lorena A;
Betcke, Timo;
(2022)
PyExaFMM: An Exercise in Designing High-Performance Software With Python and Numba.
Computing in Science and Engineering
, 24
(5)
pp. 77-84.
10.1109/mcse.2023.3258288.
Preview |
Text
2303.08394.pdf - Accepted Version Download (504kB) | Preview |
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 nonlinear 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.
| Type: | Article |
|---|---|
| Title: | PyExaFMM: An Exercise in Designing High-Performance Software With Python and Numba |
| Open access status: | An open access version is available from UCL Discovery |
| DOI: | 10.1109/mcse.2023.3258288 |
| Publisher version: | https://doi.org/10.1109/MCSE.2023.3258288 |
| Language: | English |
| Additional information: | This version is the author accepted manuscript. For information on re-use, please refer to the publisher’s terms and conditions. |
| Keywords: | Codes, Scientific computing, High performance computing, Software algorithms, Ecosystems, High performance computing, Python |
| UCL classification: | UCL UCL > Provost and Vice Provost Offices > UCL BEAMS UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Maths and Physical Sciences UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Maths and Physical Sciences > Dept of Mathematics |
| URI: | https://discovery.ucl.ac.uk/id/eprint/10171206 |
Archive Staff Only
![]() |
View Item |

