Development of a GPU-accelerated MIKE 21 Solver for Water Wave Dynamics
Technical University of Denmark, Informatics and Mathematical Modelling, Building 321, DK-2800 Kongens Lyngby, Denmark
Technical University of Denmark, 2012
With encouragement by the company DHI are the aim of this B.Sc. thesis to investigate, whether if it is possible to accelerate the simulation speed of DHIs commercial product MIKE 21 HD, by formulating a parallel solution scheme and implementing it to be executed on a CUDA-enabled GPU (massive parallel hardware). MIKE 21 HD is a simulation tool, which simulates water wave dynamics in lakes, bays, coastal areas and seas by solving a set of hyperbolic partial differential equations called shallow water equations. The solution scheme is the Alternating Direction Implicit (ADI) method, which results in a lot of tri-diagonal matrix systems, which have to be solved efficiently. Two different parallel solution schemes are implemented. The first (S1) solves each tri-diagonal in parallel using a single CUDA thread for each system. This approach use the same solution algorithm as MIKE 21 HD, Thomas algorithm. The other solution schemes (S2) adds more parallelism into the system by using several threads to solve each system in parallel. In order to do this efficient are several parallel solution algorithms investigated. The focus have been on the Parallel Cyclic Reduction (PCR) algorithm and a hybrid algorithm of Cyclic Reduction (CR) and PCR. We discover that S2 are beneficial to use for small problems, while S1 yields better results for larger systems. We have obtained 42x and 80x speedup in double-precision for S1 and S2 respectively, compared to a representative sequential C implementation of MIKE 21 HD. Furthermore, the impact of switching to perform calculation in single-precision been investigated. This resulted in 145x and 203x speedup for S1 and S2, respectively. However, this had some precision lost when using single-precision. All test throughout the project is performed on the graphics card NVIDIA GeForce GTX 590.