典型隐式CFD求解方法的众核并行计算

典型隐式CFD求解方法的众核并行计算

论文摘要

计算流体力学(Computational Fluid Dynamics,CFD)作为一种强有力的计算分析工具,已经广泛应用到航空、航天、气象、船舶、武器装备等领域。随着其向高精度、大规模、高时效方向发展,对计算与存储量的需求日益增加,开展高效大规模并行计算成为必然趋势。近年来,随着众核技术的不断发展,异构众核体系结构逐渐成为高端超级计算机系统的主流架构。与传统同构并行计算机系统相比,异构众核体系结构兼顾了通用性和能效比,为大规模科学和工程计算提供了很好的机遇。同时,异构众核体系结构的复杂硬件结构和编程环境也给包括CFD在内的领域应用开发带来了诸多现实的困难和挑战。本文以一个有限体积的CFD实际应用为背景,在图形处理器(Graphics Processing Unit,GPU)和英特尔集成众核(Many Integrated Core,MIC)两种主流众核处理器架构上开展了典型隐式CFD求解方法的并行算法和优化方法研究。主要工作包括:(1)详细介绍了两种主流众核处理器架构特点和编程环境,总结了各自的性能优化方法,从硬件和软件两个方面对比分析了两者的异同,并根据自身的经验,给出了两种架构编程和优化的学习曲线。(2)对ADI、JACOBI等隐式CFD求解方法基本原理、CFD计算流程、计算数据依赖关系等进行了深入分析,结合GPU众核体系结构和并行编程模型特点,提出了基于网格点并行和基于网格线并行的GPU并行算法;对实际CFD应用场景下的ADI和JACOBI方法进行了GPU并行算法设计、实现与性能优化,并采用不同规模的结构网格真实算例进行了并行性能测试与分析。结果显示:在200万规模的单区结构网格上,ADI和JACOBI求解方法的GPU(NVIDIA Tesla M2050)并行分别取得了10.3倍和14.25倍的加速比(相对于Intel Xeon X5670单核);相对而言JACOBI迭代求解方法体现出了较好的GPU并行计算性能。(3)基于LIKWID性能分析工具,对MIC众核架构下LU-SGS、ADI、JACOBI的OpenMP并行性能进行了深入分析,提出了基于微体系架构硬件指标的优化方法,有助于深入理解众核架构下Cache、SIMD等对应用性能的影响。针对JACOBI方法,MIC性能优化在理想和真实场景下取得加速性能差异,借助性能分析工具—LIKWID,通过收集和分析程序执行中的硬件指标,对不同场景下这种加速性能差异进行了比较研究与合理性解释。测试结果表明:在单区200万网格规模下,JACOBI方法相对于CPU单核,取得17.54的加速比。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 研究背景及意义
  • 1.1.1 CFD高性能计算概述
  • 1.1.2 典型隐式CFD求解方法概述
  • 1.1.3 众核加速器概述
  • 1.1.4 研究意义
  • 1.2 CFD众核并行计算的研究现状
  • 1.2.1 CFD应用的GPU并行计算
  • 1.2.2 CFD应用的MIC并行计算
  • 1.3 研究内容
  • 1.3.1 主要工作及贡献
  • 1.3.2 论文结构
  • 第二章 GPU架构及性能优化方法
  • 2.1 主流GPU体系结构
  • 2.1.1 NVIDIA的GPGPU体系结构
  • 2.1.2 AMD的GPGPU体系结构
  • 2.2 GPU编程环境
  • 2.3 GPU并行性能优化方法
  • 2.3.1 GPU存储层次的并行优化
  • 2.3.2 指令流优化
  • 2.3.3 GPU上Grid和Block维度设计
  • 2.3.4 CPU/GPU间通信优化
  • 2.4 本章小结
  • 第三章 MIC架构及性能优化方法
  • 3.1 MIC体系架构
  • 3.2 MIC编程
  • 3.2.1 CPU原生模式
  • 3.2.2 CPU为主MIC为辅模式
  • 3.2.3 CPU与MIC对等模式
  • 3.2.4 MIC为主CPU为辅模式
  • 3.2.5 MIC原生模式
  • 3.3 性能分析工具——LIKWID
  • 3.4 MIC并行性能优化方法
  • 3.4.1 并行度优化
  • 3.4.2 向量化优化
  • 3.4.3 Cache优化
  • 3.5 GPU与MIC的对比分析
  • 3.6 本章小结
  • 第四章 典型隐式CFD求解方法的GPU并行算法及优化
  • 4.1 引言
  • 4.2 ADI迭代的GPU并行算法设计
  • 4.2.1 基于网格点的右端项计算
  • 4.2.2 基于网格线的ADI迭代
  • 4.3 JACOBI迭代的GPU并行算法设计
  • 4.3.1 基于网格点的JACOBI迭代计算
  • 4.4 通用CFD性能优化方法
  • 4.4.1 数据存储层次
  • 4.4.2 数据布局
  • 4.4.3 调节线程组维度
  • 4.4.4 调节共享内存和缓存大小
  • 4.5 ADI迭代性能优化方法
  • 4.6 实验结果及分析
  • 4.7 小结
  • 第五章 典型隐式CFD求解方法的MIC性能优化
  • 5.1 引言
  • 5.2 基于硬件指标的性能优化方法
  • 5.3 JACOBI的性能优化方法
  • 5.3.1 循环合并
  • 5.3.2 向量化
  • 5.3.3 Cache优化
  • 5.3.4 大页面技术
  • 5.4 JACOBI方法:理想与真实场景的性能对比
  • 5.4.1 性能对比测试
  • 5.4.2 分析与讨论
  • 5.5 LUSGS/ADI的并行性能优化
  • 5.6 小结
  • 第六章 总结与展望
  • 6.1 工作总结
  • 6.2 研究展望
  • 致谢
  • 参考文献
  • 作者在学期间取得的学术成果
  • 相关论文文献

    标签:;  

    典型隐式CFD求解方法的众核并行计算
    下载Doc文档

    猜你喜欢