Adding GPU-accelerated Real-time SPH-based Avalanche Simulations to the NTNU HPC-Lab Snow Simulator
Master thesis
Permanent lenke
https://hdl.handle.net/11250/3013346Utgivelsesdato
2021Metadata
Vis full innførselSamlinger
Sammendrag
Med tilgang til raskere datamaskiner blir det mer og mer realistisk å simulere snø og snøras mer nøyaktig og raskere. Men snø er et komplisert matriale å simulere på grunn av den komplekse strukturen til snø og dens dynamiske flytegenskaper. Egenskapene til snø bestemmes av flere faktorer som for eksempel temperatur. Det er flere kategorier snø kan defineres avhengig av for eksempel massetetthet og bindingen mellom snøpartikler. Dette gjør det utfordrende å modellere snø.
I denne masteroppgaven bruker vi en nummerisk metode som heter Smoothed Particle Hydrodynamics (SPH) for å løse Naiver-Stokes likningene. Vi simmulerer Newtonsk og en ikke-Newtonsk veske der vi bruker en liknende metode som Ø. E. Krog [1] brukte i sin masteroppgave som omhandlet simulering av snøskred. Vi bruker den Newtonske modellen til å simulere vesker som for eksempel vann og vi bruker den ikke-Newtonske modellen til å simulate snø med Bingham reologi. Vi bruker de parallelle egenskapene til et moderne Nvidia skjermkort (GPU) for å gjøre simuleringen vår raskere. SPH algoritmen krever mange utregningermen er parallell i sin natur. Dette gjør at et skjermkort er godt egnet prosessor for å løse dette problemet. Ved hjelp av GPU og algoritme optimaliseringer så klarer vi å kjøre vår simulering i sanntid med opptil fire millioner partikler med den Newtonske modellen og to millioner partikler med ikke-Newtonske modellen på vårt beste skjermkort.
Implementasjonen vår er også integrert med NTNU HPC-Lab snøsimulatoren. Dette er en programsuite som ble utviklet og er vedlikeholdt av HPC-Lab studentere. SPH-algoritmen er tilgjengelig som en frittstående komponent i simulatoren. Vi har også lagt til noen unike funksjoner til vår implementasjon, slik som skalering av simulasjonene (via parametre) og bruker-definert terrengoppløsning.
Vi la også til et brukergrensesnitt til simuleringen ved bruk av IngGUI som Roger Holten implementerte i HPC-Lab snøsimulatoren ved å bruke denne GUI-en kan en endre de fysiske parameterene og endre diverse valg av andre parametre under kjøring. Vi lagde også en OpenGL buffer for partikkel-posisjoner og intensitetverdier og mappet og av-mappet OpenGL buffere til en enhetspeker ("device pointer") forbruk i GPU koden (device code), som begge burde redusere minnekopieringer. Mange av våre funn er visuelle av natur. Vi har derfor også tatt med mange bilder av snøskred og vannsimuleringer fra HPC-Lab snøsimulatoren som deler av resultatene våre. Diverse funksjoner fra det grafiske grensesnittet vi la til, ogflere av tilfellene som kan initieres fra forhåndsdefinerte innstillinger, er også tatt med. Vi viser også flere skjermbilder fra HPC-Lab snøsimulatorer under snøskredog flyt av vann. Til slutt tar vi med noen forslag til fremtidige arbeider. With access to more powerful computers, it is becoming more and more feasible to be able to simulate snow and snow-based avalanches more accurately and quickly. Snow is, however, a complex material to simulate because of the complexstructure and changing flow characteristics. Depending on, among other factorsthe temperature, there are different categories of snow with different density levels and bindings that are hard to model.
In this thesis we use the numerical method calledSmoothed Particle Hydro-dynamics(SPH) to solve the Naiver-Stokes equations. We simulate Newtonian and non-Newtonian fluids using a similar SPH method as in Ø. E. Krog[1] work on snow avalanches. We apply the Newtonian model which can simulate fluids such as water, and we use the non-Newtonian model to simulate snow with the Bingham rheological model. In particular, the parallel capabilities of modern Nvidia Graphics Processing Units (GPU’s) are exploited to speed up our simulation. The SPH algorithm ishas a high computational requirement, but is parallel in nature. This makes theGPU an ideal processor for solving this problem. Aided by GPU- and algorithmoptimizations we achieve real-time performance at particle counts up to four andtwo million on our most powerful testing system using the Newtonian model andnon-Newtonian model, respectively.
Our implementation is also integrated into the NTNU HPC-Lab snow simula-tor. This is a program suite that is developed and maintained by HPC-Lab students.The SPH algorithm is available as a stand alone component in the simulator. Wehave also added some unique features to our implementation such as simulation scaling and user defined terrain resolution. We also added a user interface to the simulation using ImgGUI framework that Roger Holten implemented in the HPC-Lab snow simulator. Using the GUI one canchange physics parameters and change various options for the simulation duringrun-time.
We also create OpenGL buffers for particle positions and intensity values andmap and un-map OpenGL buffers to a device pointers for use in device code, bothwhich should reduce memory copies.Many of our findings are visual in nature. We therefore also include as partof our results, a series of images captured from the NTNU HPC-Lab snow simulator. This includes pictures of snow avalanches and water simulations. Variousfunctionalities of the user interface, and scenarios that can be initiated with pre-defined settings, are also added. Our benchmark results in the form of graphs and tables are also included. Several interesting screen shots from the HPC-Lab snow simulator during an avalanche that was flowing in a Newtonian manner whenthe yield shear stress was exceeded, are also shown. Finally, we also add some suggestions for future work.