基于GPU集群的格子Boltzmann流体模拟并行计算的设计与实现 PPT课件_第1页
基于GPU集群的格子Boltzmann流体模拟并行计算的设计与实现 PPT课件_第2页
基于GPU集群的格子Boltzmann流体模拟并行计算的设计与实现 PPT课件_第3页
基于GPU集群的格子Boltzmann流体模拟并行计算的设计与实现 PPT课件_第4页
基于GPU集群的格子Boltzmann流体模拟并行计算的设计与实现 PPT课件_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于GPU集群的格子Boltzmann流体模拟并行算法的设计与实现 目录 作品简介设 设计方案 实验分析 创新特色 1 2 3 4 一作品简介 2 但是目前在基于LBM流体模拟中 使用GPU集群并行计算方面的研究很少 单个计算机由于硬件资源的限制 不能用于大规模流场的计算 集群并行计算成为实现低成本 高性能计算的重要途径之一 1 基于LBM LatticeBoltzmannMethod 的现代计算流体力学在航空 气象 化工等领域获得了广泛的应用 目前利用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 集群中多机通信方案 实验方案的集群构成示例如下所示 集群中各计算机之间的数据通信 我们采用目前流行的MPI MessagePassingInterface 消息传递接口 来实现 三设计方案 关键技术 2 计算流场网格子区块划分方案 对于LBM来说 计算流场网格子区块的划分通常包括纵向划分 横向划分 棋盘划分3种方案 棋盘划分方案会造成边界格点数据交换时通信量增多 增大了程序开发难度 降低了计算效率 横向和纵向划分时边界格点交换数据时通信量均较少 而纵向划分比较符合常人的习惯 因此 我们选择纵向划分方案 b 横向划分 c 棋盘划分 a 纵向划分 三设计方案 关键技术 3 集群中各子计算区块边界格点数据交换方案 当计算流场网格划分为多个子区块并分配到集群的各计算机中 在格点粒子分布函数流动时 各子区块边界格点的数据要交换到邻居计算机的子区块的边界中 为了能够计算方便 在每个子区块两侧边界处 各增加一层虚边界 用来存放从从其他计算机迁移过来的数据 这样可以使得在每个计算机内都可以完成子区块数据的碰撞和流动 过程如下图所示 图中每个子区块的蓝色为实际边界 白色为增加的虚边界 三设计方案 关键技术 4 基于CUDA的并行数据存储结构设计方案 根据CUDA的要求 为了高效地访问GPU全局内存 必须把要访问数据存储在同一连续地址内 实现合并访问 我们的方案是在GPU的全局内存中创建一个一维数组用来存放全部D2Q9模型格子9个方向的粒子分布函数值 先顺序存放所有格点的0方向的粒子分布函数f0 接着是1方向的f1 依次类推一直到f8 如下图所示 这样可以实现合并访问 提高效率 D2Q9模型 三设计方案 关键技术 5 基于CUDA内核函数的设计与实现 CUDA程序中在GPU上并行执行的代码 被组织成内核 Kernel 内核就是在GPU中被线程并行地执行的函数 我们把程序中并行部分设计成2个内核函数 碰撞内核函数和流动内核函数 将计算流场中每个格点映射到一个GPU线程上 每个线程按照LBM中的碰撞和流动公式同时并行地进行演化计算 实验环境介绍 实验环境CPU IntelCorei5 24002 80GHz4核GPU NVIDIAGeForceGT420显卡 显存容量1024MB 显存频率800MHz 流处理单元48个操作系统 WindowsXP软件平台 VisualStudio2008 MPICH2 为了验证本程序的可行性与计算性能 选择二维顶盖驱动方腔流为实验算例 四实验分析 4台MPI GPU集群程序运行截图 程序开始运行截图 程序结束运行截图 使用单CPU程序模拟的顶盖驱动方腔流示意图 4台集群 使用MPI程序模拟的顶盖驱动方腔流示意图 4台集群 使用MPI GPU程序模拟的顶盖驱动方腔流示意图 四实验分析 如图4台集群的三种方案计算结果相吻合 同样 2台集群 8台集群的实验结果亦相吻合 流场大小256X256运行10000步时三种方案结果对比 四实验分析 使用2台计算机组成的集群运行10000步的时间和加速比对比情况 四实验分析 使用2台计算机组成的集群运行10000步的加速比折线图 四实验分析 使用4台计算机组成的集群运行10000步的时间和加速比对比情况 四实验分析 使用4台计算机组成的集群运行10000步的加速比折线图 四实验分析 使用8台计算机组成的集群运行10000步的时间和加速比对比情况 四实验分析 使用8台计算机组成的集群运行10000步的加速比折线图 四实验分析 使用2台 4台 8台计算机组成的集群运行10000步的加速比折线图 四实验分析 使用2台 4台 8台计算机组成的集群运行10000步的加速比柱状图 总结分析 在流场比较小时 如64 64 MPI和MPI CUDA方式加速优势并未能体现 因为MPI和MPI CUDA方式的时间基本花费在了通信上 当流场 128时 MPI和MPI CUDA方式的加速性能比CPU有明显的提升 而且加速比随着计算流场规模的增大而增大 随着集群中的计算机的数量增加 MPI和MPI CUDA方式的加速比也会明显增加 结论 在CUDA框架下设计和实现了在多GPU上基于LBM的方腔流模拟的并行算法 与单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论