A CUDA fast multipole method with highly efficient M2L far field evaluation. (January 2021) - Kohnke, Bartosz; Kutzner, Carsten; Beckmann, Andreas; Lube, Gert; Kabadshow, Ivo; Dachsel, Holger; Grubmüller, Helmut
Solving an N-body problem, electrostatic or gravitational, is a crucial task and the main computational bottleneck in many scientific applications. Its direct solution is an ubiquitous showcase example for the compute power of graphics processing units (GPUs). However, the naïve pairwise summation hasO ( N 2 ) computational complexity. The fast multipole method (FMM) can reduce runtime and complexity toO ( N ) for any specified precision. Here, we present a CUDA-accelerated, C++ FMM implementation for multi particle systems withr − 1 potential that are found, e.g. in biomolecular simulations. The algorithm involves several operators to exchange information in an octree data structure. We focus on the Multipole-to-Local (M2L) operator, as its runtime is limiting for the overall performance. We propose, implement and benchmark three different M2L parallelization approaches. Approach (1) utilizes Unified Memory to minimize programming and porting efforts. It achieves decent speedups for only little implementation work. Approach (2) employs CUDA Dynamic Parallelism to significantly improve performance for high approximation accuracies. The presorted list-based approach (3) fits periodic boundary conditions particularly well. It exploits FMM operator symmetries to minimize both memory access and the number of complex multiplications. The result is a compute-bound implementation, i.e. performance is limited by arithmetic operations rather than by memory accesses. The complete CUDA parallelized FMM is incorporated within the GROMACS molecular dynamics package as an alternative Coulomb solver.