当前位置:主页 > 科技论文 > 数学论文 >

可压缩NS方程求解软件性能优化与并行技术研究

发布时间:2023-08-08 18:42
  计算流体力学(computational fluid dynamics,简称CFD)作为一门综合流体力学、数学、计算机科学的重要学科,在航空、汽车、呼吸和血液流动、化学工程等流体工程领域的应用越来越广泛。随着计算精度的提高和计算规模的不断扩大,CFD应用的计算量也急剧增大,在现代高性能计算机上对CFD应用进行性能优化并实现大规模并行计算已经成为了一项新的重要课题。CNS(Compressible Navier-Stokes)是用于求解在流体力学中有着重要地位的可压缩NS方程的CFD应用软件,在航空航天空气动力学数值模拟领域具有良好的应用背景,在实际应用中需要进行性能优化才能更好地发挥作用。本文基于高性能多核及众核平台,实现了对CNS程序的性能优化以及相关并行技术的研究。工作主要分为三个部分:(1)在通用CPU平台上,对CNS程序进行串行计算性能优化。针对程序访存密集、cache命中率不高、热点子程序无法实现编译器自动向量化,从编译选项、访存、数值计算等方面进行优化,在Ivy bridge处理器上性能提升了1.49倍;Fortran90之后的标准不支持向量化,因此先对热点子程序进行C语言...

【文章页数】:63 页

【学位级别】:硕士

【文章目录】:
摘要
ABSTRACT
第一章 绪论
    1.1 研究背景
        1.1.1 计算流体力学简介
        1.1.2 异构众核并行体系结构
        1.1.3 向量化编程
        1.1.4 MPI/OpenMP两级并行编程
    1.2 研究现状
        1.2.1 CFD应用在CPU+MIC异构系统上的并行加速研究
        1.2.2 C/Fortran混合编程
        1.2.3 向量化编程
        1.2.4 OpenMP程序性能优化
    1.3 本文工作
    1.4 论文结构
第二章 串行程序计算性能优化
    2.1 CNS程序特点分析
        2.1.1 程序计算流程
        2.1.2 热点函数分析
        2.1.3 微体系结构级计算分析
        2.1.4 自动向量化分析
    2.2 单核性能优化
        2.2.1 最佳编译器选项选择
        2.2.2 访存优化
        2.2.3 数值计算优化
        2.2.4 性能测试
    2.3 C/Fortran混合编程
        2.3.1 Fortran程序调用C函数
        2.3.2 共享标量和固定大小数组
        2.3.3 共享动态数组
        2.3.4 性能测试
    2.4 intrinsic向量化并行
        2.4.1 intrinsic向量化简介
        2.4.2 热点函数的intrinsic向量化改写
        2.4.3 intrinsic向量化优化
        2.4.4 性能测试
    2.5 本章小结
第三章 基于OpenMP的节点内多线程并行
    3.1 针对热点循环的OpenMP并行
        3.1.1 简单循环级OpenMP并行编程
        3.1.2 并行区的合并和扩展
    3.2 基于NUMA架构的OpenMP并行优化方法
        3.2.1 线程与处理器绑定
        3.2.2 SPMD方式编程
    3.3 性能测试
    3.4 本章小结
第四章 基于OpenMP4.0的CPU+MIC异构协同并行
    4.1 CPU+MIC异构移植的实现
        4.1.1 移植过程介绍
        4.1.2 性能测试
    4.2 CPU+MIC异构体系上的性能优化
        4.2.1 数据传输优化
        4.2.2 负载均衡优化
        4.2.3 性能测试
    4.3 本章小结
第五章 总结与展望
    5.1 工作总结
    5.2 未来工作展望
致谢
参考文献
作者在学期间取得的学术成果



本文编号:3840280

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/yysx/3840280.html


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

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