当前位置:主页 > 科技论文 > 计算机论文 >

GPU并行计算在粒子沉降晶格玻尔兹曼模拟中的应用与优化

发布时间:2017-07-17 01:12

  本文关键词:GPU并行计算在粒子沉降晶格玻尔兹曼模拟中的应用与优化


  更多相关文章: 晶格Boltzmann方法 CUDA GPU 粒子沉降 优化


【摘要】:粒子沉降运动在自然界中是一种很常见的现象,而且这一运动现象也广泛存在于众多领域中,例如工业应用、生命科学、环境科学和医学科学等。因此,近年来对粒子沉降这一现象的研究引起了许多学者的关注。由于粒子沉降涉及复杂的计算,人们无法采用理论的方法将其求解,而实验的方法也受到了种种阻碍。随着数值计算方法的兴起,给粒子沉降现象的模拟带来了希望,而目前在流体力学领域应用比较多的数值模拟方法就是晶格玻尔兹曼方法(Lattice Boltzmann Method,LBM)。 LBM是近年发展起来的一种新流体力学计算方法,它算法较为简单,又易于处理复杂边界,并且还具有天然的并行性,非常适合大规模的并行计算。因此被广泛用来数值模拟各种复杂流体力学问题。关于LBM,在本文的第二章有简要介绍。本文采用LBM方法建立了单粒子的粒子沉降二维动力学模型,利用所建模型数值模拟单粒子在流体中的二维沉降运动。 通过运用LBM,目前对粒子沉降现象的研究已经有了很大的进展,但大多数仅仅只是实现对各种粒子沉降运动的模拟,却没有人考虑其模拟的效率问题。由于粒子沉降模型之复杂,数据量之大,当模型规模比较大时,模拟所耗时间就会相当长从而导致效率低下。在当今高速发展的社会,效率是一个很重要的因素。粒子沉降现象是可以被广泛运用的,因此对该模型的模拟进行加速,提高其效率非常有必要。本文的研究重点就是如何提高粒子沉降模拟效率。 虽然LBM有着天然的并行性,但也只是相对于传统的数值模拟方法有了一些改进,为了使其模拟过程更加高效,本文采用了近年发展并迅速流行起来的方法——在CUDA架构下基于GPU的并行计算方法。在LBM方法模型的基础上,使用"CPU+GPU"异构模式,采用CUDA编写程序,成功实现了对流体的模拟。也就是将LBM的并行性与GPU的并行性完美结合,达到最佳效果。关于GPU和CUDA,在第三章有简要的介绍。 本文在先用LBM的两个基本算例——Poisueille流和方腔流验证了基于GPU的并行计算方法的可行性和高效性,然后再在CUDA框架下设计并实现了粒子沉降运动在GPU上基于LBM的数值模拟的并行算法。在普通的个人计算机上,分别采用CPU和GPU进行模拟计算,实验结果证明在GPU上进行基于LBM的粒子沉降运动数值模拟的并行计算是完全可行的,其模拟结果与在CPU上进行模拟的结果完全一致,而且还可以获得非常可观的加速性能。 虽然基于GPU的并行计算大大提高了程序运行效率,但我们并不满足于此,在此基础上还可以通过多种方法对其进行优化。本文采用第四章介绍的几种重要的CUDA程序优化方法——维度划分优化、存储器访问优化、指令流优化以及综合优化方法分别对基于GPU的粒子沉降模拟程序进行进一步的优化,实验结果证明优化后的程序运行效率有了进一步的提高。其中属综合优化效果最为明显,最终获得了71倍多的加速比。实现粒子沉降模型LBM模拟的加速,为其更广泛的应用于实际生活中奠定了基础,也推动了GPU通用并行计算技术应用于更多实际问题的发展进程。
【关键词】:晶格Boltzmann方法 CUDA GPU 粒子沉降 优化
【学位授予单位】:广西师范大学
【学位级别】:硕士
【学位授予年份】:2014
【分类号】:TP338.6
【目录】:
  • 摘要3-5
  • ABSTRACT5-9
  • 第1章 绪论9-14
  • 1.1 课题背景及研究意义9-10
  • 1.2 国内外研究现状10-12
  • 1.3 论文的主要研究内容和结构12-14
  • 第2章 晶格Boltzmann方法简介14-21
  • 2.1 晶格Boltzmann方法的发展14-15
  • 2.2 LBM基本理论和公式15-16
  • 2.3 LBM的边界条件处理16-20
  • 2.3.1 全程反弹边界条件17-18
  • 2.3.2 半程反弹边界条件18-19
  • 2.3.3 曲线边界条件19-20
  • 2.4 小结20-21
  • 第3章 CUDA简介21-28
  • 3.1 引言21-22
  • 3.2 CUDA编程模型22-25
  • 3.2.1 主机与设备22-23
  • 3.2.2 内核(Kernel)函数23
  • 3.2.3 线程模型23-24
  • 3.2.4 存储器模型24-25
  • 3.3 CUDA C简介25-26
  • 3.4 本文的CUDA实验环境26-27
  • 3.6 小结27-28
  • 第4章 CUDA程序的优化28-32
  • 4.1 并行划分优化28-29
  • 4.1.1 GPU占用率28-29
  • 4.1.2 维度划分29
  • 4.2 存储器访问优化29-30
  • 4.3 指令流优化30-31
  • 4.4 综合优化31
  • 4.5 小结31-32
  • 第5章 基于CUDA的两个典型算例的实现与优化32-48
  • 5.1 二维Poiseuille流的LBM模拟32-42
  • 5.1.1 基于CPU和GPU的Poisueille流实演化程及结果对比33-37
  • 5.1.2 基于CUDA的Poiseuille流模拟优化37-42
  • 5.2 二维方腔流的LBM模拟42-47
  • 5.2.1 基于CPU和GPU的方腔流的实验结果及对比43-44
  • 5.2.2 基于CUDA的方腔流模拟的优化44-47
  • 5.3 小结47-48
  • 第6章 基于CUDA的二维粒子沉降LBM模拟的实现与优化48-64
  • 6.1 二维粒子沉降48-55
  • 6.1.1 二维粒子沉降的几何模型48-49
  • 6.1.2 二维粒子沉降的LBM模型49
  • 6.1.3 二维粒子沉降的LBM模拟的程序设计49-55
  • 6.2 基于CPU和GPU的粒子沉降的实验结果55-57
  • 6.3 粒子沉降维度划分优化57-59
  • 6.4 粒子沉降存储器访问优化59-61
  • 6.5 粒子沉降指令流优化61-62
  • 6.6 粒子沉降综合优化62-63
  • 6.7 小结63-64
  • 第7章 本文的总结与展望64-66
  • 7.1 总结64-65
  • 7.2 展望65-66
  • 参考文献66-70
  • 致谢70-71

【参考文献】

中国期刊全文数据库 前10条

1 杨晶;;基于Simple算法的方腔驱动流问题数值模拟[J];电力学报;2010年01期

2 廖全;李隆键;崔文智;;不可压缩流体周期性流动格子波尔兹曼的边界处理[J];重庆大学学报;2010年12期

3 聂德明,林建忠;格子Boltzmann方法中的边界条件[J];计算物理;2004年01期

4 张云;王小伟;葛蔚;杨朝合;;多松弛时间格子Boltzmann方法在GPU上的实现[J];计算机与应用化学;2011年03期

5 李博;李曦鹏;张云;陈飞国;徐骥;王小伟;何险峰;王健;葛蔚;李静海;;耦合Nvidia/AMD两类GPU的格子玻尔兹曼模拟[J];科学通报;2009年20期

6 黄昌盛;张文欢;侯志敏;陈俊辉;李明晶;何南忠;施保昌;;基于CUDA的格子Boltzmann方法:算法设计与程序优化[J];科学通报;2011年Z2期

7 代民果;高智;;同位网格摄动有限体积格式求解浮力驱动方腔流[J];力学学报;2006年06期

8 李彬彬;李青;;LBM在多核并行编程模型中的应用[J];计算机技术与发展;2011年07期

9 张超英,李华兵,谭惠丽,刘慕仁,孔令江;椭圆柱体在牛顿流体中运动的格子Boltzmann方法模拟[J];物理学报;2005年05期

10 刘马林;;三维矩形槽道中颗粒沉降的数值模拟[J];应用数学和力学;2011年09期



本文编号:551355

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/551355.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户b77b9***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com