Parallel programming is increasingly used to improve the performance of solving numerical methods used for scientific purposes. Numerical methods in the field of fluid dynamics require the calculation of a large number of operations per second. One of the methods that is easily parallelized and often used is the Lattice Boltzmann method (LBM). Today, it is possible to perform simulations of numerical methods not only on high performance computers (HPC) but also on commodity computers. In this paper is presented how to accelerate LBM implementation on commodity computers using characteristics of OpenCL specification. Simulation is executed simultaneously on multiple heterogeneous devices. Four different approaches for several commodity computer configurations are presented. Obtained results are compared for different types of commodity computers and advantages and disadvantages are discussed. In this paper it presented which LBM OpenCL code implementation, among four different presented, shows best simulation performance and should be used when solving similar CFD problems.
Scientific computing community has been in close connection with high performance computing (HPC), which has been privilege of a limited group of scientists. Recently, with rapid development of Graphics Processing Units (GPUs), the parallel processing power of high performance computers has been brought up to every commodity desktop computer, reducing cost of scientific computations. In this paper, we develop a general purpose Lattice Boltzmann code that runs on commodity computer with multiple heterogeneous devices that support OpenCL specification. Different approaches to Lattice Boltzmann code implementations on commodity computer with multiple devices were explored. Simulation results for different code implementations on multiple devices have been compared to each other, to results obtained for single device implementation and with results from the literature. Simulation results for the commodity computer hardware platforms with multiple devices implementation have showed significant speed improvement compared to simulation implemented on single device.
Computational fluid dynamics (CFD) was used for modelling flow regime in a porous tube. This tube is an ultrafiltration membrane filter made from zirconium-oxide which is very effective in the separation of stable oil-in-water microemulsions, especially when the tube is filled with static mixer. The results of the CFD analysis were used in the preliminary optimisation of the static mixer’s geometry since it has significant effect the energy requirement of this advanced membrane technology. The self-developed static mixers were tested “in vitro” from the aspect of separation quality and process productivity as well to validate CFD results and to develop a cost effective, green method to recover unmanageable oily wastewaters for sustainable development. In this work the results of computational simulation of the fluid velocity and membrane separation experiments are discussed.
This paper presents performance comparison, of the lid-driven cavity flow simulation, with Lattice Boltzmann method, example, between CUDA and OpenCL parallel programming frameworks. CUDA is parallel programming model developed by NVIDIA for leveraging computing capabilities of their products. OpenCL is an open, royalty free, standard developed by Khronos group for parallel programming of heterogeneous devices (CPU’s, GPU’s, ... ) from different vendors. OpenCL promises portability of the developed code between heterogeneous devices, but portability has performance penalty. We investigate performance downside of portable OpenCL code comparing to similar CUDA code run on the NVIDIA graphic cards. Lid-driven cavity flow benchmark code, for both examples, has been written in Java programming language, and uses open source libraries to communicate with OpenCL and CUDA. Results of simulations for different grid sizes (from 128 to 896) have been presented and analyzed. Simulations have been carried out on an NVIDIA GeForce GT 220 GPU.
The Lattice Boltzmann method (LBM) has become an alternative method for computational fluid dynamics with a wide range of applications. Besides its numerical stability and accuracy, one of the major advantages of LBM is its relatively easy parallelization and, hence, it is especially well fitted to many-core hardware as graphics processing units (GPU). The majority of work concerning LBM implementation on GPU's has used the CUDA programming model, supported exclusively by NVIDIA. Recently, the open standard for parallel programming of heterogeneous systems (OpenCL) has been introduced. OpenCL standard matures and is supported on processors from most vendors. In this paper, we make use of the OpenCL framework for the lattice Boltzmann method simulation, using hardware accelerators - AMD ATI Radeon GPU, AMD Dual-Core CPU and NVIDIA GeForce GPU's. Application has been developed using a combination of Java and OpenCL programming languages. Java bindings for OpenCL have been utilized. This approach offers the benefits of hardware and operating system independence, as well as speeding up of lattice Boltzmann algorithm. It has been showed that the developed lattice Boltzmann source code can be executed without modification on all of the used hardware accelerators. Performance results have been presented and compared for the hardware accelerators that have been utilized.
The present study is concerned with two-sided lid-driven incompressible flow in rectangular, deep cavities applying lattice Boltzmann method. After validating the code for the square cavity, solutions for cavities with an aspect ratio 1.5 and 4 were obtained for the Reynolds numbers of 100, 400, 1000 and 3200. The influence of the Reynolds number and aspect ratio on the flow pattern and on the characteristics of vortices inside the cavity was studied. Symmetric flow pattern was obtained for all investigated cases. The middle of the cavity is mostly influenced by the increase in the aspect ratio. Critical aspect ratio, at which the birth of a primary vortex in the middle of the cavity takes place, was determined to be between 2.7 and 2.725.