TBFMM: A C++ generic and parallel fast multipole method library

TBFMM, for task-based FMM, is a high-performance package that implements the parallel fast multipole method (FMM) in modern C++17. It implements parallel strategies for multicore architectures, i.e. to run on a single computing node. TBFMM was designed to be easily customized thanks to C++ templates and fine control of the C++ classes’ inter-dependencies. Users can implement new FMM kernels, new types of interacting elements or even new parallelization strategies. As such, it can be used as a simulation toolbox for scientists in physics or applied mathematics. It enables users to perform simulations while delegating the data structure, the algorithm and the parallelization to the library. Besides, TBFMM can also provide an interesting use case for the HPC research community regarding parallelization, optimization and scheduling of applications handling irregular data structures.

[1]  Leslie Greengard,et al.  A fast algorithm for particle simulations , 1987 .

[2]  Martin Head-Gordon,et al.  Derivation and efficient implementation of the fast multipole method , 1994 .

[3]  The fast multipole method for periodic structures , 1994, Proceedings of IEEE Antennas and Propagation Society International Symposium and URSI National Radio Science Meeting.

[4]  Message Passing Interface Forum MPI: A message - passing interface standard , 1994 .

[5]  Martin Head-Gordon,et al.  Rotating around the quartic angular momentum barrier in fast multipole method calculations , 1996 .

[6]  Coupled Fast Multipole Method-Finite Element Method for the analysis of magneto-mechanical problems , 2003 .

[7]  Eric F Darve,et al.  A fast multipole method for Maxwell equations stable at all frequencies , 2004, Philosophical Transactions of the Royal Society of London. Series A: Mathematical, Physical and Engineering Sciences.

[8]  R. Sabariego The Fast Multipole Method for Electromagnetic Field Computation in Numerical and Physical Hybrid Systems , 2004 .

[9]  Christophe Geuzaine,et al.  Application of the fast multipole method to hybrid finite element—boundary element models , 2004 .

[10]  Holger Dachsel,et al.  Fast and accurate determination of the Wigner rotation matrices in the fast multipole method. , 2006, The Journal of chemical physics.

[11]  Lexing Ying,et al.  A massively parallel adaptive fast-multipole method on heterogeneous architectures , 2009, SC.

[12]  Implementation of rotation-based operators for Fast Multipole Method in X 10 , 2011 .

[13]  Marc Bonnet,et al.  Fast multipole method applied to Symmetric Galerkin boundary element method for 3D elasticity and fracture problems , 2012 .

[14]  A. BarbaLorena,et al.  ExaFMM: An open source library for Fast Multipole Methods aimed towards Exascale systems , 2012 .

[15]  Eric F Darve,et al.  Optimizing the Black-box FMM for Smooth and Oscillatory Kernels , 2013, CSE 2013.

[16]  Cris Cecka,et al.  FMMTL: FMM Template Library A Generalized Framework for Kernel Matrices , 2013, ENUMATH.

[17]  Emmanuel Agullo,et al.  Task-Based FMM for Multicore Architectures , 2014, SIAM J. Sci. Comput..

[18]  T. van Amelsvoort Bridging the Gap , 2014, Tijdschrift voor psychiatrie.

[19]  G. Biros,et al.  PVFMM: A Parallel Kernel Independent FMM for Particle and Volume Potentials , 2015 .

[20]  Eric F Darve,et al.  Fast hierarchical algorithms for generating Gaussian random fields , 2015 .

[21]  Eric F Darve,et al.  Hierarchical Randomized Low-Rank Approximations , 2015 .

[22]  Olivier Coulaud,et al.  An Efficient Interpolation Based FMM for Dislocation Dynamics Simulations , 2016 .

[23]  Bérenger Bramas,et al.  Optimization and parallelization of the boundary element method for the wave equation in time domain. (Optimisation et parallèlisation de la méthode des élements frontières pour l'équation des ondes dans le domaine temporel) , 2016 .

[24]  Emmanuel Agullo,et al.  Task-based fast multipole method for clusters of multicore processors , 2016 .

[25]  Emmanuel Agullo,et al.  Task‐based FMM for heterogeneous architectures , 2016, Concurr. Comput. Pract. Exp..

[26]  Emmanuel Agullo,et al.  Bridging the Gap Between OpenMP and Task-Based Runtime Systems for the Fast Multipole Method , 2017, IEEE Transactions on Parallel and Distributed Systems.

[27]  Bérenger Bramas Inastemp: A Novel Intrinsics-as-Template Library for Portable SIMD-Vectorization , 2017, Sci. Program..

[28]  David E. Keyes,et al.  Extreme Scale FMM-Accelerated Boundary Integral Equation Solver for Wave Scattering , 2018, SIAM J. Sci. Comput..

[29]  Bérenger Bramas,et al.  Increasing the degree of parallelism using speculative execution in task-based runtime systems , 2018, PeerJ Comput. Sci..