基于GPU集群的格子Boltzmann流体模拟并行计算的设计与实现分解.pptVIP

基于GPU集群的格子Boltzmann流体模拟并行计算的设计与实现分解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
作 者: 俸 毅 苏智彬 徐杨 指导老师: 覃章荣 广西师范大学 计算机科学与信息工程学院 基于GPU集群的格子Boltzmann流体模拟 并行算法的设计与实现 目录 作品简介设 设计方案 实验分析 创新特色 1 2 3 4 一 作品简介 2.但是目前在基于LBM流体模拟中,使用GPU集群并行计算方面的研究很少。单个计算机由于硬件资源的限制,不能用于大规模流场的计算。集群并行计算成为实现低成本,高性能计算的重要途径之一 1.基于LBM?(Lattice?Boltzmann?Method)的现代计算流体力学在航空、气象、化工等领域获得了广泛的应用。目前利用CUDA技术在单GPU上进行LBM加速计算的研究也越来越多 通过对单机CPU、多机CPU、多机GPU三种方案的计算结果和效率对比分析,验证其可行性及加速性能。为在普通计算机群上进行大规模复杂计算,提供一种低成本、高性能的解决方案 本项目使用MPI+CUDA技术在由多GPU组成的集群上进行LBM流体模拟并行计算,并以方腔流为算例,验证在多GPU集群上进行LBM并行计算的可行性和加速性能 一 项目简介 项目背景 项目目标 二 特色创新 格子玻尔 兹曼方法 使用配置有支持CUDA技术的GPU显卡的普通计算机组成集群,并在集群上使用MPI+CUDA技术实现了基于LBM流体模拟的并行计算,实验验证了其可行性和加速性能,我们最高获得72.32倍的加速比。该方案解决了目前基于单GPU计算机由于硬件资源限制而无法处理大规模计算流场的问题,同时获得非常可观的加速性能。为在普通计算机群上进行大规模复杂科学计算,提供一种低成本、高性能的解决方案。 三 设计方案—实现流程(1) 1 设计一个正确的单CPU 程序。用于实现单机计 算方腔流算例,实现流 程如右图所示。 2 在单CPU程序的基础上,通过使用MPI技术,扩展到CPU集群上,实现基于MPI的多CPU程序。实现流程如右图所示。 三 设计方案—实现流程(2) 3 在实现基于MPI的多CPU程序的基础上,通过使用CUDA技术,扩展到GPU集群上,实现MPI+GPU集群程序。实现流程如右图所示。 三 设计方案—实现流程(3) 三 设计方案—关键技术(1) ■ 集群中多机通信方案 交换机 网卡 CPU GPU 计算机1 网卡 CPU GPU 计算机2 网卡 CPU GPU 计算机3 网卡 CPU GPU 计算机4 实验方案的集群构成示例如下所示,集群中各计算机之间的数据通信,我们采用目前流行的MPI(Message Passing Interface,消息传递接口)来实现。 三 设计方案—关键技术(2) ■ 计算流场网格子区块划分方案 对于LBM来说,计算流场网格子区块的划分通常包括纵向划分、横向划分、棋盘划分3种方案。棋盘划分方案会造成边界格点数据交换时通信量增多,增大了程序开发难度,降低了计算效率。横向和纵向划分时边界格点交换数据时通信量均较少,而纵向划分比较符合常人的习惯,因此,我们选择纵向划分方案。 (b)横向划分 (c)棋盘划分 (a)纵向划分 三 设计方案—关键技术(3) ■ 集群中各子计算区块边界格点数据交换方案 当计算流场网格划分为多个子区块并分配到集群的各计算机中,在格点粒子分布函数流动时,各子区块边界格点的数据要交换到邻居计算机的子区块的边界中。为了能够计算方便,在每个子区块两侧边界处,各增加一层虚边界,用来存放从从其他计算机迁移过来的数据,这样可以使得在每个计算机内都可以完成子区块数据的碰撞和流动,过程如下图所示(图中每个子区块的蓝色为实际边界,白色为增加的虚边界)。 三 设计方案—关键技术(4) ■ 基于CUDA的并行数据存储结构设计方案 根据CUDA的要求,为了高效地访问GPU全局内存,必须把要访问数据存储在同一连续地址内,实现合并访问。我们的方案是在GPU的全局内存中创建一个一维数组用来存放全部D2Q9模型格子9个方向的粒子分布函数值,先顺序存放所有格点的0方向的粒子分布函数f0,接着是1方向的f1,依次类推一直到f8(如下图所示),这样可以实现合并访问,提高效率。 ……. f0 f1 … f8 所有格点f0 所有格点f1 f2—f7 所有格点f8 D2Q9模型 三 设计方案—关键技术(5) ■ 基于CUDA内核函数的设计与实现 CUDA程序中在GPU上并行执行的代码,被组织成内核(Kernel),内核就是在GPU中被线程并行地执行的函数。我们把程序中并行部分设计成2个内核函数:碰撞内核函数和流动内核函数,将计算流场中每个

文档评论(0)

ee88870 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档