Design and Implementation of Particle Systems for Meshfree Methods with High Performance

Particle systems, commonly associated with computer graphics, animation, and video games, are an essential component in the implementation of numerical methods ranging from the meshfree methods for computational fluid dynamics and related applications (e.g., smoothed particle hydrodynamics, SPH) to minimization methods for arbitrary problems (e.g., particle swarm optimization, PSO). These methods are frequently embarrassingly parallel in nature, making them a natural fit for implementation on massively parallel computational hardware such as modern graphics processing units (GPUs). However, naive implementations fail to fully exploit the capabilities of this hardware. We present practical solutions to the challenges faced in the efficient parallel implementation of these particle systems, with a focus on performance, robustness, and flexibility. The techniques are illustrated through GPUSPH, the first implementation of SPH to run completely on GPU, and currently supporting multi-GPU clusters, uniform precision independent of domain size, and multiple SPH formulations.

[1]  Robert A. Dalrymple,et al.  SPH on GPU with CUDA , 2010 .

[2]  W. G. Horner,et al.  A new method of solving numerical equations of all orders, by continuous approximation , 1815 .

[3]  Eugenio Rustico,et al.  Multi-GPU, multi-node SPH implementation with arbitrary domain decomposition , 2014 .

[4]  J. Monaghan Smoothed Particle Hydrodynamics and Its Diverse Applications , 2012 .

[5]  A. Ostrowski On Two Problems in Abstract Algebra Connected with Horner's Rule1 , 2013 .

[6]  A. Neumaier Rundungsfehleranalyse einiger Verfahren zur Summation endlicher Summen , 1974 .

[7]  Giovanni Gallo,et al.  Advances in Multi-GPU Smoothed Particle Hydrodynamics Simulations , 2014, IEEE Transactions on Parallel and Distributed Systems.

[8]  V. Pan METHODS OF COMPUTING VALUES OF POLYNOMIALS , 1966 .

[9]  O. C. Zienkiewicz,et al.  Discrete element methods , 2005 .

[10]  Riccardo Poli,et al.  Particle swarm optimization , 1995, Swarm Intelligence.

[11]  James Demmel,et al.  Design, implementation and testing of extended and mixed precision BLAS , 2000, TOMS.

[12]  William Kahan,et al.  Pracniques: further remarks on reducing truncation errors , 1965, CACM.

[13]  Gaetana Ganci,et al.  GPUSPH: a Smoothed Particle Hydrodynamics model for the thermal and rheological evolution of lava flows , 2015, Special Publications.

[14]  Felix Höfling,et al.  Highly accelerated simulations of glassy dynamics using GPUs: Caveats on limited floating-point precision , 2009, Comput. Phys. Commun..

[15]  James F. Blinn,et al.  Floating-point tricks , 1997 .

[16]  Richard Vuduc,et al.  A Brief History and Introduction to GPGPU , 2013 .

[17]  Daniela M. Romano,et al.  Template-Driven Agent-Based Modeling and Simulation with CUDA , 2011 .

[18]  J. Kuhnert,et al.  Finite Pointset Method Based on the Projection Method for Simulations of the Incompressible Navier-Stokes Equations , 2003 .

[19]  Andreas Klein,et al.  A Generalized Kahan-Babuška-Summation-Algorithm , 2005, Computing.

[20]  Pavel Tvrdík,et al.  Fake Run-Time Selection of Template Arguments in C++ , 2012, TOOLS.

[21]  Wing Kam Liu,et al.  Reproducing Kernel Particle Method for Solving Partial Differential Equations , 2017 .

[22]  Klaus Schulten,et al.  Accelerating Molecular Modeling Applications with GPU Computing , 2009 .

[23]  Keshav Pingali,et al.  An Efficient CUDA Implementation of the Tree-Based Barnes Hut n-Body Algorithm , 2011 .

[24]  Simon Green,et al.  Particle Simulation using CUDA , 2010 .

[25]  Daniela M. Romano,et al.  High performance cellular level agent-based simulation with FLAME for the GPU , 2010, Briefings Bioinform..

[26]  Jeroen Bédorf,et al.  A sparse octree gravitational N-body code that runs entirely on the GPU processor , 2011, J. Comput. Phys..

[27]  De Groeve Tom,et al.  Detecting, Modelling and Responding to Effusive Eruptions , 2016 .

[28]  Luigi Fortuna,et al.  Semi-implicit 3D SPH on GPU for lava flows , 2018, J. Comput. Phys..

[29]  Richard Vuduc,et al.  Modern Accelerator Technologies for Geographic Information Science , 2013, Springer US.

[30]  Luigi Fortuna,et al.  Preliminary validation of lava benchmark tests on the GPUSPH particle engine , 2018, Annals of Geophysics.

[31]  Harve Bennett,et al.  Star trek II : the wrath of Khan , 1982 .