Section: New Software and Platforms


ScalFMM is a library to compute N-body interactions using the Fast Multipole Method. This is a parallel kernel independent fast multipole method based on interpolation ( Chebychev or equispaced grid points).

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 (fork-join and tasks models), MPI and runtime system (StarPU). 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 tree structure (hierarchical octree and Group-Tree) and the parallel algorithms ;

  • the kernels (scalar, tensorial and multi-rhs). Classical kernels are available (Coulombic, Leonard-Jones, Gaussian, Stokes, ...)

This modular architecture allows us to easily add new FMM algorithms or kernels and new paradigm of parallelization. Today, we also proposed the FMM based on spherical harmonic expansion with Blas or rotation optimization for Coulombic potential) and all algorithms are designed to treat more complex kernels by adding multiple right-hand sides, tensorial structures, ...

  • Audience: A-4 (large audience, used by people outside the team).

  • Software originality: SO-4 (original software implementing a fair number of original ideas).

  • Software maturity: SM-3 (well-developed software, good documentation, reasonable software engineering).

  • Evolution and maintenance: EM-3 (good quality middle-term maintenance).

  • Software distribution and licensing: SDL-4 (public source or binary distribution on the Web).