并行程序解析性能模型的自动生成技术研究
发布时间:2017-08-29 01:09
本文关键词:并行程序解析性能模型的自动生成技术研究
更多相关文章: 高性能计算 并行程序 性能评测 性能模型 解析方法 LLVM
【摘要】:随着人类认识自然和改造自然需求的增长,大规模高性能计算已经成为人们生产生活中不可缺少的研究方法。高性能计算被广泛应用于气象预测、航空航天、核试验等重要领域,实现科学计算的程序一般需要在成千上万个处理器上并行运行,程序自身的性能和程序与平台的匹配程度都会对运行性能和成本产生显著影响。为了改善高性能计算程序的性能,为其选择匹配的运行平台,评测高性能计算程序的性能成为研究人员的又一研究方向。高性能计算领域的科学计算程序一般是单程序多数据(Single Program Multiple Data,SPMD)形式的并行程序,因此本课题的主要研究内容是,以SPMD形式的并行程序为研究对象,设计并实现并行程序解析性能模型的自动生成方案。 评测程序性能的常用方法有实际测量法、基准测试法、性能模拟法和性能模型法,每种方法都有其适用的范围和局限性。通过分析这些评测方法的优缺点,选择以性能模型法为基础建立解析性能模型自动生成方案。传统性能模型法具有人工计算量大、需要使用者深入理解程序的缺点,本课题通过在计算部分借助分析工具和在通信部分引入函数封套技术规避了这些缺点。 在将性能度量角度确定为程序执行时间的基础上,对并行程序解析性能模型的自动生成问题进行了描述。通过分析SPMD程序的特征,分别将程序的计算部分和通信部分进行了数学抽象,,建立了描述时间性能的模型,将平台相关的参数单独处理,为跨平台性能预测提供了前提。 设计了完整的性能模型自动生成方案。以目标应用程序的LLVM(Low LevelVirtual Machine) intermediate representation(IR)文件为分析对象,这在很大程度上降低了对应用程序编程语言的限制。对于计算部分,使用辅助分析工具LLVM实现热点基本块执行次数和基本算术操作次数的自动统计,对于通信部分,通过重构应用程序的循环结构确定通信函数的主循环体,使用文本解析的方法获得主循环体的执行次数和内部的通信函数信息,最后通过曲线拟合的方法确定热点基本块执行次数和主循环体循环次数的变化规律,生成应用程序的性能模型。 将解析性能模型自动生成方案应用于CGPOP(Conjugate Gradient ParallelOcean Program),生成了以运行规模为变量的性能模型。使用该性能模型评测可以测量的程序性能和预测不可测量的程序性能,并与实际测量的程序性能进行比较,从评测效果和预测效果两个方面证明了性能模型的有效性和准确性。
【关键词】:高性能计算 并行程序 性能评测 性能模型 解析方法 LLVM
【学位授予单位】:哈尔滨工业大学
【学位级别】:硕士
【学位授予年份】:2014
【分类号】:TP38
【目录】:
- 摘要4-5
- Abstract5-10
- 第1章 绪论10-22
- 1.1 课题背景及研究目的和意义10-11
- 1.2 相关研究领域的进展与成果11-19
- 1.2.1 常见程序性能评测方法研究现状11-16
- 1.2.2 并行编程模型16
- 1.2.3 辅助分析工具 LLVM16-17
- 1.2.4 目标应用程序 CGPOP17-18
- 1.2.5 数据处理工具简介与比较分析18-19
- 1.3 本文的主要研究内容19-20
- 1.4 本文的组织结构20-22
- 第2章 性能模型和方案整体设计22-35
- 2.1 基本概念22-24
- 2.1.1 程序规模22-23
- 2.1.2 基本块23
- 2.1.3 热点基本块23
- 2.1.4 标准热点基本块23-24
- 2.1.5 计算模型与通信模型24
- 2.1.6 strong scaling 与 weak scaling24
- 2.2 性能模型评测法原型和问题描述24-26
- 2.2.1 性能模型评测法原型24-25
- 2.2.2 性能度量角度25
- 2.2.3 解析性能模型的自动生成问题25
- 2.2.4 自动生成方案的应用场景25-26
- 2.3 并行程序的解析性能模型26-31
- 2.3.1 SPMD 程序特征分析27
- 2.3.2 计算模型的形式及含义27-29
- 2.3.3 通信模型的形式及含义29-30
- 2.3.4 性能模型的跨平台预测能力30-31
- 2.4 性能模型自动生成方案的整体设计31-33
- 2.4.1 性能模型自动生成方案的整体流程31-33
- 2.4.2 性能模型自动生成方案的框架结构33
- 2.5 本章小结33-35
- 第3章 计算模型的自动生成35-49
- 3.1 信息采集工具介绍和问题描述35-40
- 3.1.1 LLVM profiling 功能介绍35
- 3.1.2 Edge Profiling 信息采集原理35-38
- 3.1.3 LLVM 修改与配置38-40
- 3.1.4 计算模型自动生成问题40
- 3.2 计算模型自动生成模块的设计实现40-48
- 3.2.1 编译配置模块的设计实现40-41
- 3.2.2 计算信息采集模块的设计实现41
- 3.2.3 计算信息处理与数据抽取模块的设计实现41-45
- 3.2.4 计算模型求解模块的设计实现45-48
- 3.3 本章小结48-49
- 第4章 通信模型的自动生成49-58
- 4.1 关键技术分析和问题描述49-52
- 4.1.1 mpiP 修改与配置49-50
- 4.1.2 循环结构重构算法50-51
- 4.1.3 代表进程的选择算法51-52
- 4.1.4 通信模型的自动生成问题52
- 4.2 通信模型自动生成模块的设计实现52-57
- 4.2.1 编译配置模块的设计实现52
- 4.2.2 通信信息采集模块的设计实现52-53
- 4.2.3 通信信息处理与数据抽取模块的设计实现53-56
- 4.2.4 通信模型求解模块的设计实现56-57
- 4.3 本章小结57-58
- 第5章 CGPOP 性能模型的自动生成与效果评测58-71
- 5.1 实验配置58-60
- 5.1.1 实验平台介绍58
- 5.1.2 程序规模设置58-59
- 5.1.3 阈值设置59
- 5.1.4 CGPOP 编译选项配置59-60
- 5.2 性能模型生成过程及相关数据60-66
- 5.2.1 计算模型的生成过程及数据60-64
- 5.2.2 通信模型的生成过程及数据64-66
- 5.3 评测效果及误差分析66-70
- 5.3.1 性能模型对已知情况的评测效果66-68
- 5.3.2 性能模型对未知情况的预测效果68-70
- 5.4 本章小结70-71
- 结论71-72
- 参考文献72-76
- 攻读硕士学位期间发表的论文及其他成果76-78
- 致谢78
【参考文献】
中国期刊全文数据库 前4条
1 韩冀中,韩承德;高性能计算技术的发展现状及趋势[J];中国工程科学;2000年01期
2 刘华,徐炜民,孙强;基于MPI并行程序的性能评测可视化工具[J];计算机工程;2004年10期
3 迟学斌;赵毅;;高性能计算技术及其应用[J];中国科学院院刊;2007年04期
4 王蕾;崔慧敏;陈莉;冯晓兵;;任务并行编程模型研究与进展[J];软件学报;2013年01期
本文编号:750481
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/750481.html