September 2021 to August 2024


Ivo Kabadshow

Building 16.3 / Room 215

+49 2461/61-8714



A Fast Multipole Solver Hub for the Scientific Community

The performance of today's simulation software originates from increased parallelism instead of increased clock frequency. As a result, a sustainable software design is required to harvest the available parallelism. The rapid increase in diverse and hierarchically parallel hardware as well as the advent of accelerators (e.g. GPUs) make it harder for the maintainers of such simulation codes to retain flexibility and high performance for all parts of the code. In recent years, many communities therefore parted from the monolithic application approach and moved towards a collection of highly specialized components.

The project aims to provide an open-source fast multipole method (FMM) for the scientific community as a flexible C++ library called FMSolvr to compute long-range interactions. The code will be made available together with community-building tools such as version control, a bug tracker, continuous integration, and deployment tools as well as comprehensive documentation.

In contrast to high-level modifications, the parallelization layer of FMSolvr will also be addressed. By decoupling three integral parts (intracore, intranode, and internode parallelism), the goal is to increase maintainability and portability. The separation of these parallelization layers will allow the exchange of parallelization strategies arising in the future, e.g. different vectorization libraries or tasking frameworks. This modularization also aims to increase the decoupling of algorithmic components within the library to increase flexibility.