Abstract
The numerical solution of shallow water systems is useful for several applications related to geophysical flows, but the big dimensions of the domains suggests the use of powerful accelerators to obtain numerical results in reasonable times. This paper addresses how to speed up the numerical solution of a first order well-balanced finite volume scheme for 2D one-layer shallow water systems by using modern Graphics Processing Units (GPUs) supporting the NVIDIA CUDA programming model. An algorithm which exploits the potential data parallelism of this method is presented and implemented using the CUDA model in single and double floating point precision. Numerical experiments show the high efficiency of this CUDA solver in comparison with a CPU parallel implementation of the solver and with respect to a previously existing GPU solver based on a shading language.
Similar content being viewed by others
References
Castro MJ, García-Rodríguez JA, González-Vida JM, Parés C (2006) A parallel 2d finite volume scheme for solving systems of balance laws with nonconservative products: Application to shallow flows. Comput Methods Appl Mech Eng 195:2788–2815
Castro MJ, García-Rodríguez JA, González-Vida JM, Parés C (2008) Solving shallow-water systems in 2D domains using Finite Volume methods and multimedia SSE instructions. J Comput Appl Math 221:16–32
Chapman B, Jost G, van der Pas R (2007) Using OpenMP: portable shared memory parallel programming. The MIT Press, Cambridge
Eigen 2.0.9. http://eigen.tuxfamily.org. Accessed November 2009
Fernando R, Kilgard MJ (2003) The Cg tutorial: the definitive guide to programmable real-time graphics. Addison-Wesley, Reading
Hagen TR, Hjelmervik JM, Lie K-A, Natvig JR, Henriksen MO (2005) Visual simulation of shallow-water waves. Simul Model Pract Theory 13:716–726
Lastra M, Mantas JM, Ureña C, Castro MJ, García JA (2009) Simulation of Shallow-Water systems using graphics processing units. Math Comput Simul 80:598–618
NVIDIA. CUDA Zone. http://www.nvidia.com/object/cuda_home.html. Accessed November 2009
Rumpf M, Strzodka R (2006) Graphics Processor Units: New Prospects for Parallel Computing. In: Lecture notes in computational science and engineering, vol. 51. Springer, Berlin, pp 89–132
Shreiner D, Woo M, Neider J, Davis T (2007) OpenGL programming guide: the official guide to learning OpenGL, Version 2.1. Addison-Wesley Professional, Reading
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
de la Asunción, M., Mantas, J.M. & Castro, M.J. Simulation of one-layer shallow water systems on multicore and CUDA architectures. J Supercomput 58, 206–214 (2011). https://doi.org/10.1007/s11227-010-0406-2
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-010-0406-2