ScalFmm  ..


ScalFMM is a software/library to simulate N-body interactions using the Fast Multipole Method. This is a kernel independent fast multipole method based on interpolation ( Chebyshev or Lagrange).

The library offers two methods to compute interactions between bodies when the potential decays like 1/r. The first method is the classical FMM based on spherical harmonic expansions and the second is the Black-Box method which is an independent kernel formulation (introduced by E. Darve @ Stanford). With this method, we can now easily add new non oscillatory kernels in our library. For the classical method, two approaches are used to decrease the complexity of the operators. We consider either matrix formulation that allows us to use BLAS routines or rotation matrices to speed up the M2L operator.

ScalFMM intends to offer all the functionalities needed to perform large parallel simulations while enabling an easy customization of the simulation components: kernels, particles and cells. It works in parallel in a shared/distributed memory model using OpenMP and MPI. The software architecture has been designed with two major objectives: being easy to maintain and easy to understand. There is two main parts:

  • the management of the octree and the parallelization of the method;
  • The kernels. This new architecture allow us to easily add new FMM algorithm or kernels and new paradigm of parallelization.

To download build and install the application, please see Downloading, Building and Installing ScalFMM.

The Quick Start can help you to understand the architecture of the library.

The Main Examples page can help you to understand how the test are made.

This software is distributed under a specific License. For more informations, see License information.

If you want to cite the project and/or the team, please contact us. See Contacts page.


  • Pierre Blanchard. Fast hierarchical algorithms for the low-rank approximation of matrices, with applications to materials physics, geostatistics and data analysis. PhD of Université de Bordeaux, 2017.
  • Bridging the gap between OpenMP 4.0 and native runtime systems for the fast multipole method, Emmanuel Agullo, Olivier Aumage, Berenger Bramas, Olivier Coulaud, Samuel Pitoiset. RR-8953, Inria. 2016, pp.49. hal-01372022
  • Task-based FMM for heterogeneous architectures. Emmanuel Agullo, Berenger Bramas, Olivier Coulaud, Eric Darve, Matthias Messner, et al.. Concurrency and Computation: Practice and Experience, Wiley, 2016, 28 (9), 10.1002/cpe.3723
  • Fast hierarchical algorithms for generating Gaussian random fields. Pierre Blanchard, Olivier Coulaud, Eric Darve, Research Report 8811 (
  • Bérenger Bramas. Optimization and parallelization of the boundary element method for the wave equation in time domain. PhD of Université de Bordeaux, 2016. pdf
  • Task-based FMM for heterogeneous architectures, Emmanuel Agullo; Berenger Bramas; Olivier Coulaud,;Eric Darve; Matthias Messner; Toru Takahashi, Inria Research Report, 2014, pp. 29. RR-8513
  • Task-Based FMM for Multicore Architectures, Emmanuel Agullo; Berenger Bramas; Olivier Coulaud , Eric Darve; Matthias Messner; Toru Takahashi SIAM Journal on Scientific Computing, SIAM, 2014, 36 (1), pp. 66-93 DOI : 10.1137/130915662
  • Optimized M2L Kernels for the Chebyshev Interpolation based Fast Multipole Method, Matthias Messner; Berenger Bramas; Olivier Coulaud ; Eric Darve Research Report, 2012
  • Pipelining the Fast Multipole Method over a Runtime System, Emmanuel Agullo; Berenger Bramas; Olivier Coulaud ; Eric Darve ; Matthias Messner; Toru Takahashi, 2012, pp. 24. RR-7981

Projects using ScalFMM

If you want to add your project, please contact us. See Contacts page.