Examining Performance Portability with Kokkos for an Ewald Sum Coulomb Solver

We have implemented the computation of Coulomb interactions in particle systems using the performance portable C++ framework Kokkos. Coulomb interactions are evaluated with an Ewald-sum-based solver, where the interactions are split into long- and short-range contributions. The short-range contributions are calculated using pair-wise contributions of particles while long-range interactions are calculated using Fourier sums. We evaluate the performance portability of the implementation on Intel CPUs, including Intel Xeon Phi, and Nvidia GPUs.

[1]  Godehard Sutmann,et al.  Function portability of molecular dynamics on heterogeneous parallel architectures with OpenCL , 2017, The Journal of Supercomputing.

[2]  P. P. Ewald Die Berechnung optischer und elektrostatischer Gitterpotentiale , 1921 .

[3]  Josep Torrellas,et al.  False Sharing ans Spatial Locality in Multiprocessor Caches , 1994, IEEE Trans. Computers.

[4]  Wilfred F. van Gunsteren,et al.  A Comparison of Particle-Particle, Particle-Mesh and Ewald Methods for Calculating Electrostatic Interactions in Periodic Molecular Systems , 1994 .

[5]  Berend Smit,et al.  Understanding molecular simulation: from algorithms to applications , 1996 .

[6]  Christian Holm,et al.  How to mesh up Ewald sums. I. A theoretical and numerical comparison of various particle mesh routines , 1998 .

[7]  Godehard Sutmann,et al.  Molecular Dynamics - Vision and Reality , 2006 .

[8]  Jack J. Purdum,et al.  C programming guide , 1983 .

[9]  Jim Glosli,et al.  Comments on P3M, FMM, and the Ewald method for large periodic Coulombic systems , 1996 .

[10]  J. Board,et al.  Ewald summation techniques in perspective: a survey , 1996 .

[11]  Michael Hofmann,et al.  Comparison of scalable fast methods for long-range interactions. , 2013, Physical review. E, Statistical, nonlinear, and soft matter physics.

[12]  Daniel Sunderland,et al.  Kokkos: Enabling manycore performance portability through polymorphic memory access patterns , 2014, J. Parallel Distributed Comput..

[13]  D. A. Beckingsale,et al.  Performance portable C++ programming with RAJA , 2019, PPoPP.

[14]  David Fincham,et al.  Optimisation of the Ewald Sum for Large Systems , 1994 .