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...
Saved in:
Main Authors: | , , |
---|---|
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!
|
_version_ | 1832557136347922432 |
---|---|
author | Nugool Sataporn Worasait Suwannik Montri Maleewong |
author_facet | Nugool Sataporn Worasait Suwannik Montri Maleewong |
author_sort | Nugool Sataporn |
collection | DOAJ |
description | 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. |
format | Article |
id | doaj-art-f1f3fd177a3540c5a2e58a17e1d6a511 |
institution | Kabale University |
issn | 1687-5605 |
language | English |
publishDate | 2021-01-01 |
publisher | Wiley |
record_format | Article |
series | Modelling and Simulation in Engineering |
spelling | doaj-art-f1f3fd177a3540c5a2e58a17e1d6a5112025-02-03T05:43:39ZengWileyModelling and Simulation in Engineering1687-56052021-01-01202110.1155/2021/9534495Parallel Algorithms of Well-Balanced and Weighted Average Flux for Shallow Water Model Using CUDANugool Sataporn0Worasait Suwannik1Montri Maleewong2Department of Computer ScienceDepartment of Computer ScienceDepartment of MathematicsCompute 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.http://dx.doi.org/10.1155/2021/9534495 |
spellingShingle | Nugool Sataporn Worasait Suwannik Montri Maleewong Parallel Algorithms of Well-Balanced and Weighted Average Flux for Shallow Water Model Using CUDA Modelling and Simulation in Engineering |
title | Parallel Algorithms of Well-Balanced and Weighted Average Flux for Shallow Water Model Using CUDA |
title_full | Parallel Algorithms of Well-Balanced and Weighted Average Flux for Shallow Water Model Using CUDA |
title_fullStr | Parallel Algorithms of Well-Balanced and Weighted Average Flux for Shallow Water Model Using CUDA |
title_full_unstemmed | Parallel Algorithms of Well-Balanced and Weighted Average Flux for Shallow Water Model Using CUDA |
title_short | Parallel Algorithms of Well-Balanced and Weighted Average Flux for Shallow Water Model Using CUDA |
title_sort | parallel algorithms of well balanced and weighted average flux for shallow water model using cuda |
url | http://dx.doi.org/10.1155/2021/9534495 |
work_keys_str_mv | AT nugoolsataporn parallelalgorithmsofwellbalancedandweightedaveragefluxforshallowwatermodelusingcuda AT worasaitsuwannik parallelalgorithmsofwellbalancedandweightedaveragefluxforshallowwatermodelusingcuda AT montrimaleewong parallelalgorithmsofwellbalancedandweightedaveragefluxforshallowwatermodelusingcuda |