Skip to main content Accesibility Help

Developing Extensible Lattice-Boltzmann Simulators for General-Purpose Graphics-Processing Units

  • Stuart D. C. Walsh (a1) and Martin O. Saar (a2)

Lattice-Boltzmann methods are versatile numerical modeling techniques capable of reproducing a wide variety of fluid-mechanical behavior. These methods are well suited to parallel implementation, particularly on the single-instruction multiple data (SIMD) parallel processing environments found in computer graphics processing units (GPUs).

Although recent programming tools dramatically improve the ease with which GPUbased applications can be written, the programming environment still lacks the flexibility available to more traditional CPU programs. In particular, it may be difficult to develop modular and extensible programs that require variable on-device functionality with current GPU architectures.

This paper describes a process of automatic code generation that overcomes these difficulties for lattice-Boltzmann simulations. It details the development of GPU-based modules for an extensible lattice-Boltzmann simulation package – LBHydra. The performance of the automatically generated code is compared to equivalent purposewritten codes for both single-phase,multiphase, andmulticomponent flows. The flexibility of the new method is demonstrated by simulating a rising, dissolving droplet moving through a porous medium with user generated lattice-Boltzmann models and subroutines.

Corresponding author
Hide All
[1]Chen, S., Doolen, G., Lattice Boltzmann method for fluid flows, Annu. Rev. Fluid Mech 30 (1) (1998) 329364.
[2]Succi, S., The Lattice Boltzmann Equation for Fluid Dynamics and Beyond, Oxford Univ. Press, Oxford, 2001.
[3]Aidun, C. K., Clausen, J. R., Lattice-Boltzmann method for complex flows, Annual Review of Fluid Mechanics 42 (1) (2010) 439472.
[4]Sukop, M., Thorne, D., Lattice Boltzmann Modeling: An introduction for geoscientists and engineers, Springer, Heidelberg, Berlin, New York, 2006.
[5]Tölke, J., Krafczyk, M., Teraflop computing on a desktop PC with GPUs for 3D CFD, International Journal of Computational Fluid Dynamics 22 (2008) 443456.
[6]Tölke, J., Implementation of a Lattice Boltzmann kernel using the Compute Unified Device Architecture developed by nVIDIA, Computing and Visualisation in Science (2008) 11 pages.
[7]Bailey, P., Myre, J., Walsh, S. D. C., Saar, M. O., Lilja, D. J., Accelerating lattice Boltzmann fluid flow simulations using graphics processors, International Conference on Parallel Processing: Vienna, Austria (ICPP 2009).
[8]Walsh, S. D. C., Saar, M. O., Bailey, P., Lilja, D. J., Accelerating Geoscience and Engineering System Simulations on Graphics Hardware, Computers and Geosciences 35 (12) (2009) 23532364.
[9]Li, W., Wei, X., Kaufman, A., Implementing lattice Boltzmann computation on graphics hardware. The Visual Computer 2003; 19:444456.
[10]Owens, J. D., Luebke, D., Govindaraju, N., Harris, M., Kruger, J., Lefohn, A. E., Purcell, T. J.A survey of general-purpose computation on graphics hardware. Computer Graphics Forum 2007; 26(1):p80113.
[11]Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K., Houston, M., Hanrahan, P., Brook for GPUs: stream computing on graphics hardware. SIGGRAPH ’04: ACM SIGGRAPH 2004 Papers, ACM: New York, NY, USA, 2004; 777786.
[12] AMD. ATI CTM Guide: Technical Reference Manual. AMD, 1.01 edn. 2006.
[13] NVIDIA CUDA C Programming Guide 3.3.1, nVIDIA, (2010).
[14]Khronos OpenCL Working Group. The OpenCL specification version 1.0. Technical Report 2009.
[15]Bell, N., Hoberok, J., Thrust: A Productivity-Oriented Library for CUDA, in GPU Computing Gems, Jade Edition, Edited by Wen-mei W. Hwu, 2011: pp. 359371.
[16]Myre, J., Walsh, S. D. C., Lilja, D., Saar, M. O., Performance analysis of single-phase, multi-phase, and multicomponent lattice-Boltzmann fluid flow simulations on GPU clusters, Con-currency Computat.: Pract. Exper., 23 (4) (2011) 332350.
[17]Walsh, S. D. C., Saar, M. O., Macroscale lattice-Boltzmann methods for low-Peclet-number solute and heat transport in heterogeneous porous media., Water Resour. Res. 46 (2010) W07517.
[18]Davis, M. A., Walsh, S. D. C., Saar, M. O., Statistically reconstructing continuous isotropic and anisotropic two-phase media while preserving macroscopic material properties, Phys. Rev. E 83 (2011)026706.
[19]Walsh, S. D. C., Saar, M. O., Interpolated lattice boltzmann boundary conditions for surface reaction kinetics, Phys. Rev. E 82 (6) (2010) 066703.
[20]Walsh, S. D. C., Burwinkle, H., Saar, M. O., A new partial-bounceback lattice-Boltzmann method for fluid flow through heterogeneous media, Computers and Geoscience 35 (6) (2009) 11861193.
[21]Boltzmann, L., Weitere Studien liber das Warmegleichgewicht unter Gasmolekulen [Further studies on the heat equilibrium of gas molecules], Wiener Berichte 66 (1872) 275370.
[22]Qian, Y. H., D’Humières, D., Lallemand, P., Lattice BGK models for Navier-Stokes equation, Europhys. Lett. 17 (6) (1992) 479484.
[23]Barker, K. J., Davis, K., Hoisie, A., Kerbyson, D. J., Lang, M., Pakin, S., Sancho, J. C., Entering the petaflop era: the architecture and performance of roadrunner. Proceedings of the 2008 ACM/IEEE conference on Supercomputing, IEEE Press: Piscataway, NJ, USA, 2008; 111.
[24]Shan, X., Chen, H., Lattice Boltzmann model for simulating flows with multiple phases and components, Phys. Rev. E 47 (3) (1993) 18151819.
[25]He, X., Doolen, G. D., Thermodynamic foundations of kinetic theory and lattice Boltzmann models for multiphase flows, Journal of Statistical Physics 107 (1) (2002) 309328.
[26]Ryoo, S., Rodrigues, C. I., Stone, S. S., Sara S. Baghsorkhi, S.-Z. U., Stratton, J. A., W. mei, W. Hwu, Program optimization space pruning for a multithreaded GPU, in: Proceedings of the 2008 ACM/IEEE conference on Supercomputing, IEEE Press, Piscataway, NJ, USA, 2008, pp. 111.
[27]Jang, B., Do, S., Pien, H., Kaeli, D., Architecture-aware optimization targeting multithreaded stream computing, in: GPGPU-2: Proceedings of 2nd Workshop on General Purpose Processing on Graphics Processing Units, ACM, New York, NY, USA, 2009, pp. 6270.
[28]Zhang, E. Z., Jiang, Y., Guo, Z., Shen, X., Streamlining gpu applications on the fly: thread divergence elimination through runtime thread-data remapping, in: Proceedings of the 24th ACM International Conference on Supercomputing, ICS ’10, ACM, New York, NY, USA, 2010, pp.115126.
[29]Wu, L., Tsutahara, M., Kim, L., Ha, M., Three-dimensional lattice boltzmann simulations of droplet formation in a cross-junction microchannel, Int. J. Multiphas. Flow 34 (9) (2008) 852864.
[30]Scardovelli, R., Zaleski, S., Direct numerical simulation of free-surface and interfacial flow, Annu. Rev. Fluid Mech 31 (1) (1999) 567603.
[31]Wagner, A. J., The Origin of Spurious Velocities in Lattice Boltzmann, Int. J. Modern Phys. B 17 (2003) 193196.
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Communications in Computational Physics
  • ISSN: 1815-2406
  • EISSN: 1991-7120
  • URL: /core/journals/communications-in-computational-physics
Please enter your name
Please enter a valid email address
Who would you like to send this to? *



Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed