Volume 13, Issue 3
Developing Extensible Lattice-Boltzmann Simulators for General-Purpose Graphics-Processing Units

Stuart D. C. Walsh & Martin O. Saar

Commun. Comput. Phys., 13 (2013), pp. 867-879.

Published online: 2013-03

Preview Full PDF 98 571
Export citation
  • Abstract

Lattice-Boltzmannmethods areversatilenumerical 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 purpose writtencodesforbothsingle-phase, multiphase, andmulticomponent flows. Theflexibility 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. 

  • Keywords

  • AMS Subject Headings

  • Copyright

COPYRIGHT: © Global Science Press

  • Email address
  • References
  • Hide All
    View All

  • BibTex
  • RIS
  • TXT
@Article{CiCP-13-867, author = {Stuart D. C. Walsh and Martin O. Saar}, title = {Developing Extensible Lattice-Boltzmann Simulators for General-Purpose Graphics-Processing Units}, journal = {Communications in Computational Physics}, year = {2013}, volume = {13}, number = {3}, pages = {867--879}, abstract = {

Lattice-Boltzmannmethods areversatilenumerical 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 purpose writtencodesforbothsingle-phase, multiphase, andmulticomponent flows. Theflexibility 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. 

}, issn = {1991-7120}, doi = {https://doi.org/10.4208/cicp.351011.260112s}, url = {http://global-sci.org/intro/article_detail/cicp/7255.html} }
TY - JOUR T1 - Developing Extensible Lattice-Boltzmann Simulators for General-Purpose Graphics-Processing Units AU - Stuart D. C. Walsh & Martin O. Saar JO - Communications in Computational Physics VL - 3 SP - 867 EP - 879 PY - 2013 DA - 2013/03 SN - 13 DO - http://dor.org/10.4208/cicp.351011.260112s UR - https://global-sci.org/intro/cicp/7255.html KW - AB -

Lattice-Boltzmannmethods areversatilenumerical 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 purpose writtencodesforbothsingle-phase, multiphase, andmulticomponent flows. Theflexibility 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. 

Stuart D. C. Walsh & Martin O. Saar. (1970). Developing Extensible Lattice-Boltzmann Simulators for General-Purpose Graphics-Processing Units. Communications in Computational Physics. 13 (3). 867-879. doi:10.4208/cicp.351011.260112s
Copy to clipboard
The citation has been copied to your clipboard