ExaFMM - 10+ years, 7 re-writes. The tortuous progress of computational research
Invited talk at the ExCALIBUR workshop, Exascale Computing for System-Level Engineering
14 July 2020
The story of writing codes in my lab for one algorithm, over and over, illustrates the sometimes tortuous progress of computational research. This tale speaks of the inherent tension between the students’ goals (one-time use, performance brag, thesis results) and the goals of reusable, sustainable software. ExaFMM is a new re-write of a high-performance implementation of the fast multipole method in C++. My students and a post-doc have written at least seven separate code bases for this algorithm, over more than 10 years, and we hope this one is the definitive one.