基于CUDA的IB-LBM并行算法设计与性能分析
Design and Performance Analysis of CUDA-Based Parallel Algorithm for IB-LBM
DOI: 10.12677/mos.2026.154051, PDF,    国家自然科学基金支持
作者: 李 赢, 方雨欣:中国地质大学(武汉)数学与物理学院,湖北 武汉;黄昌盛*:华中科技大学数学与统计学院,湖北 武汉
关键词: 浸入边界–格子Boltzmann方法CUDA并行计算双指针稀疏存储可变形颗粒流固耦合Immersed Boundary-Lattice Boltzmann Method CUDA Parallel Computing Dual-Pointer Sparse Storage Deformable Capsule Fluid-Structure Interaction
摘要: 浸入边界–格子Boltzmann方法(IB-LBM)已成为模拟可变形颗粒–流体相互作用的重要数值工具。然而,在大规模复杂流固耦合问题的数值模拟中,普遍存在内存访问效率低与计算冗余严重等挑战,限制了数值仿真的计算性能与网格规模。为此,本文基于CUDA并行计算平台,对IB-LBM算法进行了并行算法优化设计,其中提出了双指针稀疏矩阵存储策略以解决全矩阵存储模式下无效节点更新导致的计算冗余问题。在此基础上,以多孔介质流与分叉管道流为例开展测试,并对比分析不同孔隙率下两种存储模式的计算效率与显存占用情况。结果表明,在孔隙率小于0.85时,所提出的优化策略可显著减少无效内存访问,平均计算性能提升20%以上,同时有效降低显存消耗。本文研究结果为大规模复杂流固耦合系统的高效数值模拟提供了可行的并行优化方案。
Abstract: The Immersed Boundary-Lattice Boltzmann Method (IB-LBM) has become a powerful tool for simulating deformable particle-fluid interactions. However, its application to large-scale fluid-structure interaction problems is often bottlenecked by inefficient memory access and significant computational redundancy. To address these issues, this paper presents a CUDA-based parallel algorithm optimization of the IB-LBM, and proposes a double-pointer sparse matrix storage strategy to eliminate the redundancy caused by invalid node updates inherent in conventional full matrix storage schemes. The presented algorithm is evaluated using porous media and bifurcation flow benchmarks, comparing the computational efficiency and GPU memory footprint of the sparse and full storage modes. The numerical results show that when porosities below 0.85, the proposed strategy significantly reduces invalid memory accesses, yielding a performance improvement of over 20% while substantially lowering memory usage. This work provides an effective parallel optimization scheme for high-performance simulations of complex, large-scale fluid-structure interaction problem.
文章引用:李赢, 方雨欣, 黄昌盛. 基于CUDA的IB-LBM并行算法设计与性能分析[J]. 建模与仿真, 2026, 15(4): 32-44. https://doi.org/10.12677/mos.2026.154051

参考文献

[1] Cheng, X., Caruso, C., Lam, W.A. and Graham, M.D. (2025) Red Blood Cell Partitioning and Segregation through Vascular Bifurcations in a Model of Sickle Cell Disease. Soft Matter, 21, 5793-5803. [Google Scholar] [CrossRef] [PubMed]
[2] Wu, N., Grieve, S.W.D., Manning, A.J. and Spencer, K.L. (2024) Flocs as Vectors for Microplastics in the Aquatic Environment. Nature Water, 2, 1082-1090. [Google Scholar] [CrossRef
[3] Wu, T., Khani, M., Sawalha, L., Springstead, J., Null, J.K. and Qi, D. (2020) A Cuda-Based Implementation of a Fluid-Solid Interaction Solver: The Immersed Boundary Lattice-Boltzmann Lattice-Spring Method. Communications in Computational Physics, 23, 980-1011. [Google Scholar] [CrossRef
[4] Xiang, X., Su, W., Hu, T. and Wang, L. (2023) Multi-GPU Lattice Boltzmann Simulations of Turbulent Square Duct Flow at High Reynolds Numbers. Computers & Fluids, 266, Article ID: 106061. [Google Scholar] [CrossRef
[5] Zhang, J., Johnson, P.C. and Popel, A.S. (2007) An Immersed Boundary Lattice Boltzmann Approach to Simulate Deformable Liquid Capsules and Its Application to Microscopic Blood Flows. Physical Biology, 4, 285-295. [Google Scholar] [CrossRef] [PubMed]
[6] Krüger, T., Varnik, F. and Raabe, D. (2011) Efficient and Accurate Simulations of Deformable Particle Suspensions with a Lattice-Boltzmann and Finite Element Method. Journal of Fluid Mechanics, 676, 465-475.
[7] Krüger, T. (2016) Effect of Tube Diameter and Capillary Number on Platelet Margination and Near-Wall Dynamics. Rheologica Acta, 55, 511-526. [Google Scholar] [CrossRef
[8] Wang, Z., Sui, Y., Salsac, A., Barthès-Biesel, D. and Wang, W. (2016) Motion of a Spherical Capsule in Branched Tube Flow with Finite Inertia. Journal of Fluid Mechanics, 806, 603-626. [Google Scholar] [CrossRef
[9] NVIDIA Corporation (2023) CUDA C Programming Guide.
https://docs.nvidia.com/
[10] 朱红银. 基于GPU的晶格Boltzmann方法并行算法研究[D]: [硕士学位论文]. 桂林: 广西师范大学, 2021.
[11] Ames, J., Puleri, D.F., Balogh, P., Gounley, J., Draeger, E.W. and Randles, A. (2020) Multi-GPU Immersed Boundary Method Hemodynamics Simulations. Journal of Computational Science, 44, Article ID: 101153. [Google Scholar] [CrossRef] [PubMed]
[12] 黄昌盛. LBM的GPU算法及其在颅内动脉瘤血流动力学中的应用[D]: [博士学位论文]. 武汉: 华中科技大学, 2014.
[13] AlAhmadi, S., Mohammed, T., Albeshri, A., Katib, I. and Mehmood, R. (2020) Performance Analysis of Sparse Matrix-Vector Multiplication (SpMV) on Graphics Processing Units (GPUs). Electronics, 9, Article 1675. [Google Scholar] [CrossRef
[14] 郭照立, 郑楚光. 格子Boltzmann方法的原理及应用[M]. 北京: 科学出版社, 2009.
[15] 何雅玲, 王勇, 李庆. 格子Boltzmann方法的理论及应用[M]. 北京: 科学出版社, 2009.
[16] Qian, Y.H., D’Humières, D. and Lallemand, P. (1992) Lattice BGK Models for Navier-Stokes Equation. Europhysics Letters (EPL), 17, 479-484. [Google Scholar] [CrossRef
[17] Peskin, C.S. (2002) The Immersed Boundary Method. Acta Numerica, 11, 479-517. [Google Scholar] [CrossRef
[18] Ma, J., Wang, Z., Young, J., Lai, J.C.S., Sui, Y. and Tian, F. (2020) An Immersed Boundary-Lattice Boltzmann Method for Fluid-Structure Interaction Problems Involving Viscoelastic Fluids and Complex Geometries. Journal of Computational Physics, 415, Article ID: 109487. [Google Scholar] [CrossRef
[19] 黄昌盛, 张文欢, 侯志敏, 等. 基于CUDA的格子Boltzmann方法: 算法设计与程序优化[J]. 科学通报, 2011, 56(28): 2434-2444.