An optimizing symbolic algebra approach for generating fast multipole method operators
Abstract
We have developed a symbolic algebra approach to automatically produce, verify, and optimize computer code for the Fast Multipole Method (FMM) operators. This approach allows for flexibility in choosing a basis set and kernel, and can generate computer code for any expansion order in multiple languages. The procedure is implemented in the publicly available Python program MOSAIC. Optimizations performed at the symbolic level through algebraic manipulations significantly reduce the number of mathematical operations compared with a straightforward implementation of the equations. We find that the optimizer is able to eliminate 20%-80% of the floating-point operations and for the expansion orders p ≤ 10 it changes the observed scaling properties. We present our approach using three variants of the operators with the Cartesian basis set for the harmonic potential kernel 1 / r , including the use of totally symmetric and traceless multipole tensors.
- Publication:
-
Computer Physics Communications
- Pub Date:
- June 2020
- DOI:
- 10.1016/j.cpc.2019.107081
- arXiv:
- arXiv:1811.06332
- Bibcode:
- 2020CoPhC.25107081C
- Keywords:
-
- Fast multipole method;
- Numerical methods;
- N-body simulations;
- Physics - Computational Physics;
- Astrophysics - Instrumentation and Methods for Astrophysics
- E-Print:
- Updated to final version submitted to Computer Physics Communications. Accepted on 20 November 2019