Abstract
In this article a very efficient implementation of a 2D-Lattice Boltzmann kernel using the Compute Unified Device Architecture (CUDA™) interface developed by nVIDIA® is presented. By exploiting the explicit parallelism exposed in the graphics hardware we obtain more than one order in performance gain compared to standard CPUs. A non-trivial example, the flow through a generic porous medium, shows the performance of the implementation.
Similar content being viewed by others
References
Benzi R., Succi S., Vergassola M.: The lattice Boltzmann equation: theory and applications. Phys. Rep. 222(3), 147–197 (1992)
Bolz J., Farmer I., Grinspun E., Schröder P.: Sparse matrix solvers on the GPU: conjugate gradients and multigrid. ACM Trans. Graph. (SIGGRAPH) 22(3), 917–924 (2003)
Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K., Houston, M., Hanrahan, P.: Brook for GPUs: Stream Computing on Graphics Hardware. ACM Trans. Graph. 23, 777–786 (2004). http://graphics.stanford.edu/papers/brookgpu/
Chen S., Doolen G.: Lattice Boltzmann method for fluid flows. Annu. Rev. Fluid Mech. 30, 329–364 (1998)
Chu N., Tai C.L.: Moxi: Real-time ink dispersion in absorbent paper. ACM Trans. Graph. 24(3), 504–511 (2005)
d’Humières, D.: Generalized lattice–Boltzmann equations. In: Shizgal, B.D., Weave, D.P. (eds.) Rarefied Gas Dynamics: Theory and Simulations. Prog. Astronaut. Aeronaut., vol. 159 pp. 450–458. AIAA Washington, DC (1992)
d’Humières D., Ginzburg I., Krafczyk M., Lallemand P., Luo L.S.: Multiple-relaxation-time lattice Boltzmann models in three-dimensions. Philo. Trans. R. Soc. Lond. A 360, 437–451 (2002)
Fan, Z., Qiu, F., Kaufman, A.E., Yoakum-Stover, S.: Gpu cluster for high performance computing. In: Proceedings of ACM/IEEE Supercomputing Conference 2004, pp. 47–59 (2004)
Frisch U., d’HumiFres D., Hasslacher B., Lallemand P., Pomeau Y., Rivet J.P.: Lattice gas hydrodynamics in two and three dimensions. Comp. Syst. 1, 75–136 (1987)
Ginzburg I., d’Humières D.: Multireflection boundary conditions for lattice Boltzmann models. Phys. Rev. E 68, 066,614 (2003)
Heuveline, V., Weiœ, J.P.: A Parallel Implementation of a Lattice Boltzmann Method on the ClearSpeed AdvanceTM Accelerator Board. Tech. rep., Rechenzentrum Universität Karlsruhe (2007). http://www.rz.uni-karlsruhe.de/download/RZ-TR-2007-1.pdf
Inamuro T., Yoshino M., Ogino F.: Accuarcy of the lattice boltzmann method for small knudsen number with finite reynolds number. Phys. Fluids 9, 3535 (1997)
Junk M., Klar A., Luo L.: Asymptotic analysis of the lattice boltzmann equation. J. Comp. Phys. 210, 676 (2005)
Krüger J., Westermann R.: Linear algebra operators for GPU implementation of numerical algorithms. ACM Trans. Graph. (SIGGRAPH) 22(3), 908–916 (2003)
Lallemand P., Luo L.S.: Theory of the lattice Boltzmann method: Dispersion, dissipation, isotropy, Galilean invariance, and stability. Phys. Rev. E 61(6), 6546–6562 (2000)
Li W., Wei X., Kaufman A.: Implementing Lattice Boltzmann Computation on Graphics Hardware. Vis. Comput. 19(7-8), 444–456 (2003)
Nguyen N.Q., Ladd A.: Sedimentation of hard-sphere suspensions at low Reynolds number. J. Fluid Mech. 525, 73–104 (2004)
NVIDIA CUDA Programming Guide. http://developer.download.nvidia.com
Qian Y.H., d’Humières D., Lallemand P.: Lattice BGK models for Navier-Stokes equation. Europhys. Lett. 17, 479–484 (1992)
Qiu, F., Zhao, Y., Fan, Z., Wei, X., Lorenz, H., Wang, J., Yoakum-Stover, S., Kaufman, A.E., Mueller, K.: Dispersion simulation and visualization for urban security. In: IEEE Visualization, pp. 553–560 (2004)
Sangani A.S., Acrivos A.: Slow flow past periodic arrays of cylinders with application to heat-transfer. Int. J. Multiph. Flow 8(3), 193–206 (1982)
Tölke J.: A thermal model based on the lattice Boltzmann method for low Mach number compressible flows. J. Comput. Theor. Nanosci. 3(4), 579–587 (2006)
Tutubalina, A.: 8800 gtx performance tests. http://blog.lexa.ru/2007/03/08/nvidia_8800gtx_skorost__chtenija_tekstur.html. In Russian
Wei X., Zhao Y., Fan Z., Li W., Qiu F., Yoakum-Stover S., Kaufman A.: Lattice-based flow field modeling. IEEE Trans. Vis. Comput. Graphics 10(6), 719–729 (2004)
Wellein G., Zeiser T., Hager G., Donath S.: On the single processor performance of simple lattice Boltzmann kernels. Comput. Fluids 35(8–9), 910–919 (2006)
Wu E., Liu Y., Liu X.: An improved study of real-time fluid simulation on GPU. Comp. Anim. Virtual Worlds 15, 139–146 (2004)
Zhao Y., Han Y., Fan Z., Qiu F., Kuo Y.C., Kaufman A., Mueller K.: Visual simulation of heat shimmering and mirage. IEEE Trans. Vis. Comput. Graph. 13(1), 179–189 (2007)
Zhao Y., Wang L., Qiu F., Kaufman A., Mueller K.: Melting and flowing in multiphase environments. Comput. Graph. 30(4), 519–528 (2006)
Zhu H., Liu X., Liu Y., Wu E.: Simulation of miscible binary mixtures based on lattice Boltzmann method. Comp. Anim. Virtual Worlds 17, 403–410 (2006)
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by G. Wittum.
Rights and permissions
About this article
Cite this article
Tölke, J. Implementation of a Lattice Boltzmann kernel using the Compute Unified Device Architecture developed by nVIDIA. Comput. Visual Sci. 13, 29 (2010). https://doi.org/10.1007/s00791-008-0120-2
Received:
Accepted:
Published:
DOI: https://doi.org/10.1007/s00791-008-0120-2