Parallel Algorithms of Well-Balanced and Weighted Average Flux for Shallow Water Model Using CUDA

Compute Unified Device Architecture (CUDA) implementations are presented of a well-balanced finite volume method for solving a shallow water model. The CUDA platform allows programs to run parallel on GPU. Four versions of the CUDA algorithm are presented in addition to a CPU implementation. Each ve...

Full description

Saved in:
Bibliographic Details
Main Authors: Nugool Sataporn, Worasait Suwannik, Montri Maleewong
Format: Article
Language:English
Published: Wiley 2021-01-01
Series:Modelling and Simulation in Engineering
Online Access:http://dx.doi.org/10.1155/2021/9534495
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Compute Unified Device Architecture (CUDA) implementations are presented of a well-balanced finite volume method for solving a shallow water model. The CUDA platform allows programs to run parallel on GPU. Four versions of the CUDA algorithm are presented in addition to a CPU implementation. Each version is improved from the previous one. We present the following techniques for optimizing a CUDA program: limiting register usage, changing the global memory access pattern, and using loop unroll. The accuracy of all programs is investigated in 3 test cases: a circular dam break on a dry bed, a circular dam break on a wet bed, and a dam break flow over three humps. The last parallel version shows 3.84x speedup over the first CUDA implementation. We use our program to simulate a real-world problem based on an assumed partial breakage of the Srinakarin Dam located in Kanchanaburi province, Thailand. The simulation shows that the strong interaction between massive water flows and bottom elevations under wet and dry conditions is well captured by the well-balanced scheme, while the optimized parallel program produces a 57.32x speedup over the serial version.
ISSN:1687-5605