Skip to main content
Log in

Simulation of one-layer shallow water systems on multicore and CUDA architectures

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. 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

    Article  MATH  Google Scholar 

  2. 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

    Article  MathSciNet  MATH  Google Scholar 

  3. Chapman B, Jost G, van der Pas R (2007) Using OpenMP: portable shared memory parallel programming. The MIT Press, Cambridge

    Google Scholar 

  4. Eigen 2.0.9. http://eigen.tuxfamily.org. Accessed November 2009

  5. Fernando R, Kilgard MJ (2003) The Cg tutorial: the definitive guide to programmable real-time graphics. Addison-Wesley, Reading

    Google Scholar 

  6. 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

    Article  Google Scholar 

  7. 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

    Article  MATH  Google Scholar 

  8. NVIDIA. CUDA Zone. http://www.nvidia.com/object/cuda_home.html. Accessed November 2009

  9. 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

    Google Scholar 

  10. 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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to José M. Mantas.

Rights and permissions

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-010-0406-2

Keywords

Navigation