GPU高性能计算技术在晶格玻尔兹曼方法模拟中的应用

GPU高性能计算技术在晶格玻尔兹曼方法模拟中的应用

论文摘要

计算机模拟是依据现有的理论及模型,以计算机强大的计算能力为基础,运用计算机数值模拟方法进行虚拟实验。而高效准确的计算机模拟需要模型、计算方法、软件和硬件等方面的共同提高及密切配合。流体力学是研究流体运动及其规律的一门学科,其研究领域非常广泛,虽然经过多年的发展与探索取得了丰硕的成果,但该领域仍面临着巨大的挑战:一方面,是由于流体运动的复杂性;另一方面,随着现代科学技术的快速发展,流体力学不断与其他学科交叉,产生了许多传统方法难以描述或不适用的新问题。晶格玻尔兹曼方法(Lattice Boltzmann Method, LBM)是近几十年来国际上发展起来的一种计算流体力学新方法,它是从格子气自动机方法(Lattice Gas Automata, LGA)的技术上发展而来。LBM作为一种可替换的计算流体力学模拟方法已经得到人们的公认,并被广泛地应用于具有复杂几何边界流体系统的模拟问题。LBM继承了LGA完全并行、边界条件容易实现、易于编程等优点的同时又去除了诸如统计噪声、压强依赖于流体速度、不满足伽利略不变性等缺陷。LBM不像传统的数值计算方法是在宏观Navier-Stokes方程的基础上,作差分成有限元离散后,得到代数方程,然后使用某种数值方法求解离散方程,从而获得宏观的物理量,它是建立在粒子分布函数的微观动力学方程基础上,其宏观量由粒子分布函数获得。由于这些优点使LBM被广泛应用于复杂流体系统的模拟,诸如悬浮粒子,粘弹性介质,多相流,粒子沉降及悬浮颗粒在流体中的运动,血液流动等等,LBM已从纯粹的理论领域迈向了工程实际应用,形成了国际研究热点。本文在第二章中对LBM进行了详细介绍,包括LGA理论的简单介绍,LBM的基本理论和模型,各类复杂边界条件及其程序结构等。通过模拟Poiseuille流研究了LBM中多种曲线边界条件的实现及其效率,并在考虑宏观边界无滑移总体修正的前提下提出了一种新的统一曲线边界条件,并与已有的边界条件进行实验模拟和误差对比,得出该边界条件实现简单、形式统一、去除了驰豫时间的奇异点,并具有较好的精度等优点。虽然LBM是用于流体模拟的一种很好的方法,但它的模拟计算是典型的计算密集型,受到计算能力和资源的限制。而当前CPU的发展已经遇到瓶颈,无论是在核心架构的效率还是在核心数量方面都很难获得大幅提升。图像处理单元(Graphics Processing Unit,GPU)是NVIDIA公司提出的一种基于图像处理器的高性能并行计算技术,该技术最初是为了解决复杂而繁重的图像处理任务提出,并在图像处理领域的高性能计算方面已取得了一定的成功。GPU非常适合处理那些能够表示为并行计算的问题,并行计算的算术计算密度非常高,且浮点运算能力大大超过CPU,相同计算量GPU的硬件成本也大大低于CPU硬件成本。从1993年开始,GPU的性能以每年2.8倍的速度增长,基本上每半年就更新一代。GPU图形硬件的飞速发展,涌现了若干编程模型,其中最具代表性的是NVIDIA公司推出的统一计算设备架构(Compute Unified Device Architecture, CUDA),实现了GPU通用计算(General Purpose GPU, GPGPU),为高效率的解决流体力学计算问题提供了一条新途径。如何利用硬件的可编程性和并行性来实现一些复杂计算,已成为当今研究的热点之一。GPU通用计算迅速发展,尤其是"CPU+GPU"异构模式的提出,使GPU的应用领域更为广泛:科学计算(如快速傅里叶变换,科学计算可视化,遗传算法加速,数据库操作等)、图像处理、信号处理、视频音频处理、计算生物学、基于物理学的模拟等。其中,GPU在复杂流体系统中的模拟应用正处于起步阶段,研究GPU技术在LBM模拟中的应用对于加深与促进LBM在复杂系统行为模拟中的应用具有重要的意义。本文简要介绍了GPU技术的发展历程、当代GPU的特点和优势、GPU用于通用计算的原理、以及当前应用最广泛的编程环境CUDA技术,同时系统研究了GPU并行计算的实现方法,利用LBM分别在CPU和GPU环境下对Poiseuille流和单圆柱在二维通道间流体中的运动进行了模拟。实验结果显示:Poiseuille流在使用单精度类型进行模拟时,在Debug下CPU模拟所需时间是GPU模拟的26-35倍,在Release下CPU模拟所需时间是GPU模拟的4.56倍;单圆柱在二维通道间流体中的运动在Intel(R) Core(TM)i5 CPU 760@2.80GHz下的CPU模拟时间是GPU模拟时的10.3倍,在Intel(R) Pentium(R) 4 CPU 3.00GHz下的CPU模拟时间是GPU模拟时的32.3倍。GPU在模拟时与CPU模拟存在较小误差,本文对此进行了分析与讨论。总之,通过大量的实验充分说明了GPU技术应用于LBM中对复杂流体行为模拟的可行性和高效性,为将GPU高性能技术有效地应用于具有复杂几何边界的流体模拟打下了良好的基础。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 研究意义
  • 1.2 研究现状
  • 1.3 研究内容和组织结构
  • 第2章 晶格玻尔兹曼方法
  • 2.1 格子气自动机
  • 2.2 基本理论
  • 2.3 边界条件
  • 2.3.1 反向弹回边界条件
  • 2.3.2 曲线边界条件
  • 2.3.2.1 虚拟平衡态格式
  • 2.3.2.2 插值格式
  • 2.3.2.3 非平衡态外推格式
  • 2.3.3 压力边界条件
  • 2.4 解析解及误差公式
  • 2.5 程序结构
  • 2.6 本章小结
  • 第3章 GPU技术
  • 3.1 GPU技术简介
  • 3.2 CUDA编程模型介绍
  • 3.3 CUDA C语言简介
  • 3.4 CUDA环境配置
  • 3.5 本章小结
  • 第4章 一种新的统一曲线边界条件
  • 4.1 引言
  • 4.2 算法思路
  • 4.3 实验模拟及分析
  • 4.4 算法特点及优势
  • 4.5 本章小结
  • 第5章 GPU技术在晶格玻尔兹曼方法模拟中的应用
  • 5.1 引言
  • 5.2 应用思路
  • 5.3 GPU技术模拟Poiseuille流运动
  • 5.3.1 模拟流程
  • 5.3.2 实验结果与分析
  • 5.4 GPU技术模拟单圆柱运动
  • 5.4.1 单圆柱运动介绍
  • 5.4.2 模拟流程
  • 5.4.3 实验结果与分析
  • 5.5 本章小结
  • 第6章 本文总结与展望
  • 6.1 本文总结
  • 6.2 工作展望
  • 参考文献
  • 读硕期间的科研情况
  • 致谢
  • 相关论文文献

    标签:;  ;  ;  ;  ;  

    GPU高性能计算技术在晶格玻尔兹曼方法模拟中的应用
    下载Doc文档

    猜你喜欢