Developing extensible lattice-Boltzmann simulationsfor general-purpose graphics-programming units Page: 4 of 14
This article is part of the collection entitled: Office of Scientific & Technical Information Technical Reports and was provided to Digital Library by the UNT Libraries Government Documents Department.
The following text was automatically extracted from the image on this page using optical character recognition software:
In addition, Lattice-Boltzmann methods are readily parallelizable and are particularly
suited to implementation on single-instruction multiple data (SIMD) parallel processing
environments. In recent years, substantial performance increases have been achieved
with lattice-Boltzmann methods by exploiting the SIMD environment in modern com-
puter graphics processing units (GPUs) [5-8]. Possibly the first such model proposed
by Li et al.  in the early 2000's achieved an impressive 50x speedup over single core
implementations at the time with 9.87 million lattice-node updates per second (MLUPs).
Early on, significant drawbacks in the GPU programming model (reduced precision and
the requirement that the algorithm be cast in terms of graphics operations), hindered the
programmer's ability to develop more complex lattice-Boltzmann models, such as multi-
phase and multicomponent fluid flow simulations, and presented a significant barrier to
widespread use of GPU-based programs . In the years since, however, these barriers
have been largely removed with the release of the current generation of GPU-based pro-
gramming tools, such as nVIDIA's CUDA - a C-like programming language that allows
programs to be written for graphics cards . CUDA also provides new functionality
that distinguishes it from the early GPU programming models (e.g. random access byte-
addressable memory and support for coordination and communication among processes
through thread synchronization and shared memory), thereby allowing more efficient
processing of complex data dependencies. Finally, CUDA also supports single and dou-
ble precision, and IEEE-compliant arithmetic . These advances have extended the
applicability of GPU computation to a much broader range of computational problems
in science and engineering .
Nevertheless, while these new GPU programming tools dramatically improve on pre-
vious generations, GPU implementations continue to lack some of the flexibility of CPU
based programs. Specifically, under the GPU programming model, it may be difficult to
develop modular and extensible programs with variable on-device functionality.
This paper describes a process of automatic code generation to circumvent these diffi-
culties for lattice-Boltzmann methods. It details the development of GPU-based modules
for LBHydra, an extensible lattice-Boltzmann simulation package capable of modeling
a wide array of fluid mechanical behavior. Section 2 discusses lattice-Boltzmann simu-
lations and the automatic code generation process used to add GPU capabilities to LB-
Hydra. In Section 3, we compare the performance of the automatically created code with
previous purpose written examples, and demonstrate the flexibility of the method by em-
ploying user generated models to simulate the dissolution of CO2 droplets in a porous
medium. Conclusions are summarized in Section 4.
2 A GPU module for Lattice-Boltzmann methods
In this section, we describe how the LBHydra lattice-Boltzmann simulation package has
been extended to include GPU based models. LBHydra offers numerous areas for user in-
put and modification, including user-defined material models, lattice-types and subrou-
Here’s what’s next.
This article can be searched. Note: Results may vary based on the legibility of text within the document.
Tools / Downloads
Get a copy of this page or view the extracted text.
Citing and Sharing
Basic information for referencing this web page. We also provide extended guidance on usage rights, references, copying or embedding.
Reference the current page of this Article.
Walsh, S C & Saar, M O. Developing extensible lattice-Boltzmann simulationsfor general-purpose graphics-programming units, article, October 27, 2011; Livermore, California. (digital.library.unt.edu/ark:/67531/metadc845300/m1/4/: accessed January 20, 2019), University of North Texas Libraries, Digital Library, digital.library.unt.edu; crediting UNT Libraries Government Documents Department.