Closed DavidPfander-UniStuttgart closed 7 years ago
Here are some UML diagrams for understanding the dependencies better
I assume the mathematics behind the grid_fmm.cpp can be found in this article Dehnen - A fast multipole method for stellar dynamics
Added some comments with the help of Dominic. (Thanks, Dominic!)
I'm working on the optimization of some of the hotspots. For this it would be very helpful if more documentation were available to make it easier for me to understand the implemented algorithm.
Based on the current level of optimization, the following functions are most interesting:
taylor.hpp
:taylor<5, simd_vector>::set_basis
grid_fmm.cpp
:grid::compute_interactions
grid::compute_boundary_interactions_multipole_multipole
grid::compute_boundary_interactions_monopole_monopole
grid::compute_boundary_interactions_multipole_monopole
grid::compute_boundary_interactions_monopole_multipole
(ordered by their share of runtime)What would be helpful:
I selected those hotspots based on experiments of the moving star scenario on my Skylake machine and results shown in the Optimization progress wiki page.