A scalable schur-complement fluids solver for heterogeneous compute platforms

We present a scalable parallel solver for the pressure Poisson equation in fluids simulation which can accommodate complex irregular domains in the order of a billion degrees of freedom, using a single server or workstation fitted with GPU or Many-Core accelerators. The design of our numerical technique is attuned to the subtleties of heterogeneous computing, and allows us to benefit from the high memory and compute bandwidth of GPU accelerators even for problems that are too large to fit entirely on GPU memory. This is achieved via algebraic formulations that adequately increase the density of the GPU-hosted computation as to hide the overhead of offloading from the CPU, in exchange for accelerated convergence. Our solver follows the principles of Domain Decomposition techniques, and is based on the Schur complement method for elliptic partial differential equations. A large uniform grid is partitioned in non-overlapping subdomains, and bandwidth-optimized (GPU or Many-Core) accelerator cards are used to efficiently and concurrently solve independent Poisson problems on each resulting subdomain. Our novel contributions are centered on the careful steps necessary to assemble an accurate global solver from these constituent blocks, while avoiding excessive communication or dense linear algebra. We ultimately produce a highly effective Conjugate Gradients preconditioner, and demonstrate scalable and accurate performance on high-resolution simulations of water and smoke flow.

[1]  Wolfgang Straßer,et al.  A Parallel Preconditioned Conjugate Gradient Solver for the Poisson Problem on a Multi-GPU Platform , 2010, 2010 18th Euromicro Conference on Parallel, Distributed and Network-based Processing.

[2]  Greg Turk,et al.  Hybrid smoothed particle hydrodynamics , 2011, SCA '11.

[3]  Darwyn Peachey,et al.  Simulating whitewater rapids in Ratatouille , 2007, SIGGRAPH '07.

[4]  Ken Museth,et al.  Hierarchical RLE level set: A compact and versatile deformable surface representation , 2006, TOGS.

[5]  Robert Bridson,et al.  A PPPM fast summation method for fluids and beyond , 2014, ACM Trans. Graph..

[6]  Rüdiger Westermann,et al.  Solving the Fluid Pressure Poisson Equation Using Multigrid—Evaluation and Improvements , 2016, IEEE Transactions on Visualization and Computer Graphics.

[7]  Christopher Wojtan,et al.  A stream function solver for liquid simulations , 2015, ACM Trans. Graph..

[8]  Rüdiger Westermann,et al.  Large-Scale Liquid Simulation on Adaptive Hexahedral Grids , 2014, IEEE Transactions on Visualization and Computer Graphics.

[9]  Duc Quang Nguyen,et al.  Smoke simulation for large scale phenomena , 2003, ACM Trans. Graph..

[10]  Jos Starn A Simple Fluid Solver Based on the FFT , 2001, J. Graphics, GPU, & Game Tools.

[11]  Morten Bro-Nielsen,et al.  Real‐time Volumetric Deformable Models for Surgery Simulation using Finite Elements and Condensation , 1996, Comput. Graph. Forum.

[12]  Huamin Wang,et al.  A unified approach for subspace simulation of deformable bodies in multiple domains , 2015, ACM Trans. Graph..

[13]  Mathieu Desbrun,et al.  Power particles , 2015, ACM Trans. Graph..

[14]  Huamin Wang,et al.  Wetbrush: GPU-based 3D painting simulation at the bristle level , 2015, ACM Trans. Graph..

[15]  Sarah Tariq,et al.  Interactive fluid-particle simulation using translating Eulerian grids , 2010, I3D '10.

[16]  Eftychios Sifakis,et al.  A parallel multigrid Poisson solver for fluids simulation on large grids , 2010, SCA '10.

[17]  Ken Museth,et al.  Large scale simulation and surfacing of water and ice effects in Dragons 2 , 2014, SIGGRAPH '14.

[18]  Ronald Fedkiw,et al.  An Unconditionally Stable MacCormack Method , 2008, J. Sci. Comput..

[19]  Christopher Horvath,et al.  Directable, high-resolution simulation of fire on the GPU , 2009, SIGGRAPH '09.

[20]  R. Fedkiw,et al.  USING THE PARTICLE LEVEL SET METHOD AND A SECOND ORDER ACCURATE PRESSURE BOUNDARY CONDITION FOR FREE SURFACE FLOWS , 2003 .

[21]  Jun-yong Noh,et al.  A heterogeneous CPU–GPU parallel approach to a multigrid Poisson solver for incompressible fluid simulation , 2013, Comput. Animat. Virtual Worlds.

[22]  S. Osher,et al.  Spatially adaptive techniques for level set methods and incompressible flow , 2006 .

[23]  Tae-Yong Kim,et al.  Unified particle physics for real-time applications , 2014, ACM Trans. Graph..

[24]  Pradeep Dubey,et al.  Large-scale fluid simulation using velocity-vorticity domain decomposition , 2012, ACM Trans. Graph..

[25]  Christopher Wojtan,et al.  Highly adaptive liquid simulations on tetrahedral meshes , 2013, ACM Trans. Graph..

[26]  WojtanChris,et al.  Double bubbles sans toil and trouble , 2015 .

[27]  M. Gross,et al.  A multiscale approach to mesh-based surface tension flows , 2010, ACM Trans. Graph..

[28]  Dimitris N. Metaxas,et al.  Realistic Animation of Liquids , 1996, Graphics Interface.

[29]  Jun Wu,et al.  A System for High-Resolution Topology Optimization , 2016, IEEE Transactions on Visualization and Computer Graphics.

[30]  Rüdiger Westermann,et al.  A real-time multigrid finite hexahedra method for elasticity simulation using CUDA , 2011, Simul. Model. Pract. Theory.

[31]  Ronald Fedkiw,et al.  So real it'll make you wet , 2006, SIGGRAPH '06.

[32]  Yiying Tong,et al.  Model-reduced variational fluid simulation , 2015, ACM Trans. Graph..

[33]  Stephane Cotin,et al.  Real Time Volumetric Deformable Models for Surgery Simulation , 1996, VBC.

[34]  Leonidas J. Guibas,et al.  Adaptively sampled particle fluids , 2007, ACM Trans. Graph..

[35]  Jonathan M. Cohen,et al.  Low viscosity flow simulations for animation , 2008, SCA '08.

[36]  James F. O'Brien,et al.  Fluid animation with dynamic meshes , 2006, ACM Trans. Graph..

[37]  Chenfanfu Jiang,et al.  The affine particle-in-cell method , 2015, ACM Trans. Graph..

[38]  Ronald Fedkiw,et al.  Efficient simulation of large bodies of water by coupling two and three dimensional techniques , 2006, ACM Trans. Graph..

[39]  Eftychios Sifakis,et al.  SPGrid: a sparse paged grid structure applied to adaptive smoke simulation , 2014, ACM Trans. Graph..

[40]  Barry Smith,et al.  Domain Decomposition Methods for Partial Differential Equations , 1997 .

[41]  Alfio Quarteroni,et al.  Domain Decomposition Methods for Compressible Flows , 1999 .

[42]  Ronald Fedkiw,et al.  Codimensional surface tension flow on simplicial complexes , 2014, ACM Trans. Graph..

[43]  Robert Bridson,et al.  The Discretely-Discontinuous Galerkin Coarse Grid for Domain Decomposition , 2015, ArXiv.

[44]  Frank Losasso,et al.  A fast and accurate semi-Lagrangian particle level set method , 2005 .

[45]  Greg Turk,et al.  Controlling liquids using meshes , 2012, SCA '12.

[46]  Jan Bender,et al.  Divergence-free smoothed particle hydrodynamics , 2015, Symposium on Computer Animation.

[47]  James A. Sethian,et al.  The Fast Construction of Extension Velocities in Level Set Methods , 1999 .

[48]  Matthias Teschner,et al.  Implicit Incompressible SPH , 2014, IEEE Transactions on Visualization and Computer Graphics.

[49]  Mark Meyer,et al.  Subspace condensation , 2015, ACM Trans. Graph..

[50]  Dan Bailey,et al.  Distributing liquids using OpenVDB , 2015, SIGGRAPH Talks.

[51]  Barbara Solenthaler,et al.  Data-driven fluid simulations using regression forests , 2015, ACM Trans. Graph..

[52]  Robert Bridson,et al.  Animating sand as a fluid , 2005, ACM Trans. Graph..

[53]  Jos Stam,et al.  Stable fluids , 1999, SIGGRAPH.

[54]  M. Gross,et al.  Physics-inspired topology changes for thin fluid features , 2010, ACM Trans. Graph..

[55]  Ronald Fedkiw,et al.  Two-Way Coupled SPH and Particle Level Set Fluid Simulation , 2008, IEEE Transactions on Visualization and Computer Graphics.

[56]  Ronald Fedkiw,et al.  Practical animation of liquids , 2001, SIGGRAPH.

[57]  Markus H. Gross,et al.  Two-scale particle simulation , 2011, ACM Trans. Graph..

[58]  Alfio Quarteroni,et al.  Domain Decomposition Methods for Partial Differential Equations , 1999 .

[59]  Ronald Fedkiw,et al.  Simulating water and smoke with an octree data structure , 2004, ACM Trans. Graph..

[60]  Yoshinori Dobashi,et al.  A Fast Simulation Method Using Overlapping Grids for Interactions between Smoke and Rigid Objects , 2008, Comput. Graph. Forum.

[61]  Ken Museth,et al.  VDB: High-resolution sparse volumes with dynamic topology , 2013, TOGS.

[62]  James F. O'Brien,et al.  Eurographics/acm Siggraph Symposium on Computer Animation (2007) Liquid Simulation on Lattice-based Tetrahedral Meshes , 2022 .

[63]  Erik Reinhard,et al.  Real-time fluid simulation using discrete sine/cosine transforms , 2009, I3D '09.

[64]  James F. O'Brien,et al.  Updated sparse cholesky factors for corotational elastodynamics , 2012, TOGS.

[65]  Matthias Müller,et al.  Real-time Eulerian water simulation using a restricted tall cell grid , 2011, ACM Trans. Graph..

[66]  Ronald Fedkiw,et al.  Chimera grids for water simulation , 2013, SCA '13.

[67]  Barry F. Smith,et al.  Domain Decomposition: Parallel Multilevel Methods for Elliptic Partial Differential Equations , 1996 .

[68]  Eitan Grinspun,et al.  Double bubbles sans toil and trouble , 2015, ACM Trans. Graph..

[69]  Miles Macklin,et al.  Position based fluids , 2013, ACM Trans. Graph..

[70]  Christopher Wojtan,et al.  A Dimension‐reduced Pressure Solver for Liquid Simulations , 2015, Comput. Graph. Forum.

[71]  Ronald Fedkiw,et al.  A new grid structure for domain extension , 2013, ACM Trans. Graph..

[72]  Xubo Yang,et al.  Fluid Animation with Multi-layer Grids , 2008 .

[73]  Bo Zhu,et al.  Creating and Preserving Vortical Details in SPH Fluid , 2010, Comput. Graph. Forum.

[74]  R. Fedkiw,et al.  A novel algorithm for incompressible flow using only a coarse grid projection , 2010, ACM Trans. Graph..

[75]  Ronald Fedkiw,et al.  Animation and rendering of complex water surfaces , 2002, ACM Trans. Graph..