×

exafmm

swMATH ID: 30090
Software Authors: R. Yokota; L. A. Barba
Description: An FMM Based on Dual Tree Traversal for Many-core Architectures. The present work attempts to integrate the independent efforts in the fast N-body community to create the fastest N-body library for many-core and heterogenous architectures. Focus is placed on low accuracy optimizations, in response to the recent interest to use FMM as a preconditioner for sparse linear solvers. A direct comparison with other state-of-the-art fast N-body codes demonstrates that orders of magnitude increase in performance can be achieved by careful selection of the optimal algorithm and low-level optimization of the code. The current N-body solver uses a fast multipole method with an efficient strategy for finding the list of cell-cell interactions by a dual tree traversal. A task-based threading model is used to maximize thread-level parallelism and intra-node load-balancing. In order to extract the full potential of the SIMD units on the latest CPUs, the inner kernels are optimized using AVX instructions. Our code – exaFMM – is an order of magnitude faster than the current state-of-the-art FMM codes, which are themselves an order of magnitude faster than the average FMM code.
Homepage: https://arxiv.org/abs/1209.3516
Source Code:  https://github.com/exafmm/exafmm
Keywords: ExaFMM; high-performance; fast multipole method; C++; fast multipole algorithms; FMM; Python interfaces; Journal of Open Source Software
Related Software: pvfmm; Algorithm 967; HOT; TBFMM; Bempp-cl; Python; ScalFMM; FMMLIB3D; Matlab; PETSc; FFTW; defmm; BEM++; pybind11; meshio; HyENA; Numba; PyCUDA; SciPy; Gmsh
Cited in: 10 Publications

Standard Articles

1 Publication describing the Software Year

Citations by Year