Programming and Computing Lattice Boltzmann Method

Programming and Computing Lattice Boltzmann Method

Pedro Valero-Lara (Barcelona Supercomputing Center (BSC), Spain)
Copyright: © 2018 |Pages: 29
DOI: 10.4018/978-1-5225-4760-0.ch001

Abstract

The use of lattice Boltzmann method (LBM) has been extended to numerous fields of scientific and industrial interest due to its inherent characteristics, which make this methodology a very efficient and fast method for fluid simulations. In this chapter, the numerical formulation behind LBM is presented in detail. However, the main motivation of this chapter is the introduction to those aspects regarding the programmability of this method. The authors present different implementations, data layout, and strategies to efficiently implement LBM. The performance achieved by each of the techniques is analyzed in detail, over some of the currently used computer platforms. They pay particular attention to those techniques that attempt to reduce the memory requirement of their method, which is one of the most important weak-points when implementing and computing LBM.
Chapter Preview
Top

Introduction

Advanced strategies for the efficient implementation of computationally intensive numerical methods have a strong interest in the industrial and academic community. We could define Computational Fluid Dynamics (CFD) as a set of numerical methods applied to obtain approximate solutions of problems of fluid dynamics and heat transfer (Zikanov, 2010). Today, the Lattice-Boltzmann method (LBM) is one of the most popular methodologies in CFD, and its use is extended to a high number of different CFD applications. Furthermore, the advantage of using LBM has been consistently confirmed by many authors (Bernaschi, Fatica, Melchionna, Succi, & Kaxiras, 2010) (Rinaldi, Dari, Vnere, & Clausse, 2012) (Zhou, Mo, Wu, & Zhao, 2012) (Feichtinger, Habich, Kstler, Rude, & Aoki, 2015) (Alexandrov, Lees, Krzhizhanovskaya, Dongarra, Sloot, Crimi, Mantovani, Pivanti, Schifano, & Tripiccione, 2013) for a large variety of problems and computing platforms. Unlike other methodologies, which can be inefficient or difficult to implement (Valero-Lara, Pinelli, Favier, & Prieto-Matías, 2012) (Valero-Lara, Pinelli, & Prieto-Matías, 2014), LBM is well suited for parallel computing (Succi, 2001). However, there are important details about the programmability that have to be analyze in detail. These details are sometimes difficult to find in the literature. It is because of this, that this chapter attempts to cover those important details about the programming and computing of LBM that help to the community to understand those strategies, which can help to achieve a good performance. As many other methods, LBM can be adapted or implemented in very different ways. Here, it is introduced some of the most popular approaches to deal with LBM, and what are the advantages and disadvantages of each of them. We pay particular attention to the different implementations, data layouts, parallel granularities that can be exploited on those simulations based on LBM.

The scientific community in its never-ending road of larger and more efficient computational resources is in need of more efficient implementations that can adapt efficiently on the current parallel platforms. Despite this method is particularly amenable to be efficiently parallelized, it is in need of a considerable memory capacity, which is the consequence of a dramatic fall in performance when dealing with large simulations. In the second part of this chapter, it is presented some initiatives to minimize such demand of memory, which allows us to execute bigger simulations on the same platform without additional memory transfers/copies, keeping a high performance.

Complete Chapter List

Search this Book:
Reset