OpenMP并行程序性能分析

OpenMP并行程序性能分析

论文摘要

近年来,随着大规模并行计算技术的发展,特别是近期多核技术的不断进步,使得几乎所有的程序员都要设计多线程程序。在并行程序设计领域,OpenMP具有简单易用的特点,因而成为共享主存结构编程的事实标准。然而开发OpenMP并行程序面临着很多性能问题,比如负载不均衡、存储访问效率不高等,因此就需要利用性能分析工具找出造成性能问题的原因和出现问题的位置。现在已有的性能分析工具基本上都依赖于操作系统甚至硬件平台的特性,缺乏灵活的跨平台能力。针对这种现状和实际需求,本文设计并实现了轻量型的跨平台性能分析工具。本文首先建立了OpenMP程序开销分析模型,然后提出了性能分析单元的概念,并借助性能分析单元对负载均衡进行分析,接着定义了基于性能属性规范语言的OpenMP程序性能问题,最后设计并实现了跨平台的性能分析工具。该工具通过自动化插桩源代码的方式对OpenMP程序定义的各种性能问题进行分析;同时借助于硬件计数器来获取程序运行时的底层硬件信息,硬件计数器是处理器中的一组特殊的寄存器,在处理器的工作过程中,这些寄存器中保存着运行时环境的相关数据,通过这些数据可以分析出程序的CACHE失效率等性能特征,性能分析工具使用PAPI来完成对硬件计数器的访问;同时还能够报告出性能分析单元负载均衡程度和进行半自动化的性能退化问题检测。该工具按照模块化构成的思想利用ANSI C实现,不但具有跨平台特性,而且具有良好的灵活性和可扩展性。通过标准的测试程序验证了性能分析工具的有效性,该工具得到的性能日志结果不仅能指出性能问题在源代码中的位置,还能指明性能问题产生的原因,说明该工具有较强的可用性。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 课题研究的背景
  • 1.1.1 并行计算现状
  • 1.1.2 并行程序设计模型和OpenMP 标准
  • 1.1.3 课题研究的意义
  • 1.2 课题研究现状
  • 1.3 课题来源
  • 1.4 课题目标
  • 1.5 论文重点和难点
  • 1.6 本文的研究成果及创新
  • 1.7 论文结构
  • 第二章 OpenMP 编程模型与开销分析
  • 2.1 OpenMP 编程模型
  • 2.1.1 OpenMP 介绍
  • 2.1.2 OpenMP 指导命令流图
  • 2.1.3 OpenMP 程序开发的形式
  • 2.2 开销分析模型
  • 2.3 开销分类
  • 2.4 性能分析单元和性能退化
  • 2.4.1 性能分析单元
  • 2.4.2 性能退化
  • 2.5 OpenMP 指导命令开销测量
  • 2.6 OpenMP 程序片断实例化开销和调度行为分析
  • 2.7 本章小结
  • 第三章 性能分析工具设计与实现
  • 3.1 性能分析工具框架
  • 3.2 源代码插桩
  • 3.3 性能问题
  • 3.3.1 性能属性
  • 3.3.2 相关性能数据结构
  • 3.3.3 利用性能属性定义性能问题
  • 3.4 执行期间硬件信息获取
  • 3.4.1 访问层次模型
  • 3.4.2 PAPI 结构
  • 3.4.3 OpenMP 程序硬件信息获取
  • 3.5 性能分析工具实现
  • 3.5.1 OpenMP 性能问题识别和定位
  • 3.5.2 负载均衡测量与优化策略
  • 3.5.3 硬件信息获取方法
  • 3.5.4 性能退化问题检测
  • 3.6 本章小结
  • 第四章 测试与优化
  • 4.1 测试
  • 4.1.1 Quicksort 试验
  • 4.1.2 合理使用CACHE 的重要性试验
  • 4.1.3 BT 试验
  • 4.1.4 SP 试验
  • 4.1.5 性能分析单元试验
  • 4.2 优化
  • 4.2.1 优化的指导方针
  • 4.2.2 实践指导
  • 4.2.3 针对CACHE 的优化
  • 4.3 本章小结
  • 第五章 结束语
  • 5.1 总结
  • 5.2 下一步工作
  • 致谢
  • 攻读硕士期间发表的论文
  • 攻读硕士期间参加的项目
  • 参考文献
  • 相关论文文献

    • [1].基于多核集群的MPI+OpenMP混合并行编程模型研究[J]. 甘肃科技 2018(19)
    • [2].基于OpenMP的共轭梯度法并行加速[J]. 电脑编程技巧与维护 2016(06)
    • [3].基于OpenMP的任务调度与负载均衡技术的分析与研究[J]. 福建电脑 2013(04)
    • [4].OpenMP中负载平衡优化的分析与研究[J]. 福建电脑 2011(06)
    • [5].基于OpenMP技术的多核处理器程序的开发实现[J]. 北京工业职业技术学院学报 2010(01)
    • [6].OpenMP compiler for distributed memory architectures[J]. Science China(Information Sciences) 2010(05)
    • [7].基于OpenMP的多核程序设计技术[J]. 沙洲职业工学院学报 2010(02)
    • [8].OpenMP多核技术研究及其在遗传算法中的应用[J]. 沈阳大学学报 2010(05)
    • [9].OpenMP的发展及未来[J]. 科技经济导刊 2019(23)
    • [10].基于OpenMP加速的无单元逆时偏移成像[J]. 物探化探计算技术 2016(06)
    • [11].高斯滤波OpenMP并行化[J]. 通讯世界 2015(10)
    • [12].OpenMDSP:Extending OpenMP to Program Multi-Core DSPs[J]. Journal of Computer Science & Technology 2014(02)
    • [13].MPtostream:an OpenMP compiler for CPU-GPU heterogeneous parallel systems[J]. Science China(Information Sciences) 2012(09)
    • [14].OpenMP-based parallel transient stability simulation for large-scale power systems[J]. Science China(Technological Sciences) 2012(10)
    • [15].面向嵌入式多核的OpenMP扩展方法(英文)[J]. 计算机科学与探索 2011(01)
    • [16].基于OpenMP的3维粒子模拟并行计算[J]. 强激光与粒子束 2010(08)
    • [17].OpenMP的多核并行程序设计[J]. 电脑编程技巧与维护 2009(17)
    • [18].多核构架下OpenMP多线程应用运行性能的研究[J]. 计算机工程与科学 2009(11)
    • [19].OpenMP技术在教学游戏中的应用[J]. 电化教育研究 2008(05)
    • [20].基于OpenMP多线程动态负载均衡技术研究[J]. 世界科技研究与发展 2008(03)
    • [21].基于OpenMP的电磁场FDTD并行程序性能分析[J]. 现代电子技术 2008(14)
    • [22].基于OpenMP的近场动力学模拟并行实现[J]. 河南理工大学学报(自然科学版) 2020(05)
    • [23].基于OpenMP 4.0的发动机燃烧模拟软件异构并行优化[J]. 计算机研究与发展 2018(02)
    • [24].基于OpenMP的色散介质FDTD并行程序设计[J]. 电子科技 2015(07)
    • [25].基于OpenMP的中子输运方程特征线法并行计算研究[J]. 原子能科学技术 2015(10)
    • [26].利用OpenMP技术实现线性方程组并行求解[J]. 信息网络安全 2013(05)
    • [27].基于OpenMP的动态模式识别并行计算[J]. 计算机与现代化 2012(02)
    • [28].面向异构系统的OpenMP程序自动生成[J]. 信息工程大学学报 2012(04)
    • [29].基于OpenMP的多核程序设计[J]. 科技信息 2010(09)
    • [30].基于OpenMP的数学形态学并行算法研究[J]. 中小企业管理与科技(下旬刊) 2009(02)

    标签:;  ;  

    OpenMP并行程序性能分析
    下载Doc文档

    猜你喜欢