摘要 | 第8-9页 |
ABSTRACT | 第9页 |
第一章 绪论 | 第10-17页 |
1.1 研究背景 | 第10-12页 |
1.2 迭代编译研究现状 | 第12-15页 |
1.3 研究内容及研究意义 | 第15-16页 |
1.3.1 研究内容 | 第15-16页 |
1.3.2 研究意义 | 第16页 |
1.4 论文组织结构 | 第16-17页 |
第二章 OpenTuner迭代编译框架的研究与分析 | 第17-34页 |
2.1 OpenTuner框架的整体结构 | 第17-18页 |
2.2 搜索算法 | 第18-27页 |
2.2.1 多臂老虎机元搜索算法(AUCBanditMetaTechnique) | 第18-20页 |
2.2.2 其他搜索算法 | 第20-21页 |
2.2.3 搜索算法的实现——以差分进化为例 | 第21-27页 |
2.3 配置控制器 | 第27-31页 |
2.3.1 参数类型 | 第27-31页 |
2.4 OpenTuner中的其他模块 | 第31-32页 |
2.4.1 评估模块 | 第31页 |
2.4.2 结果数据库 | 第31-32页 |
2.5 使用OpenTuner进行迭代编译优化 | 第32页 |
2.6 本章小结 | 第32-34页 |
第三章 基于多核体系结构的并行迭代编译技术的研究 | 第34-43页 |
3.1 并行迭代编译的实现 | 第34-35页 |
3.2 实验设置 | 第35-36页 |
3.3 实验结果 | 第36-42页 |
3.3.1 小型程序调优 | 第36-38页 |
3.3.2 大型程序调优 | 第38-40页 |
3.3.3 实验结果分析 | 第40-42页 |
3.4 本章小结 | 第42-43页 |
第四章 基于代码片段提取的迭代编译技术的研究 | 第43-60页 |
4.1 程序代码提取和封装概述 | 第43-47页 |
4.1.1 C语言程序 | 第44-45页 |
4.1.2 Fortran语言程序 | 第45页 |
4.1.3 C++语言程序 | 第45-47页 |
4.2 程序代码提取和封装的关键技术 | 第47-50页 |
4.2.1 跨文件代码的提取 | 第47页 |
4.2.2 热点函数输入数据的准备 | 第47-48页 |
4.2.3 代码片段对于程序特征的保留 | 第48-50页 |
4.2.4 权衡代码片段的质量 | 第50页 |
4.3 封装代码的质量和处理 | 第50-57页 |
4.3.1 权衡初始化和热点代码 | 第50-52页 |
4.3.2 恰当处理对源程序特征的保留 | 第52-54页 |
4.3.3 恰当使用源程序的运行环境 | 第54-55页 |
4.3.4 封装函数时避免不必要优化 | 第55-57页 |
4.4 实验结果和分析 | 第57-59页 |
4.4.1 实验结果 | 第57-58页 |
4.4.2 实验分析 | 第58-59页 |
4.5 本章小结 | 第59-60页 |
第五章 结束语 | 第60-61页 |
5.1 工作总结 | 第60页 |
5.2 工作展望 | 第60-61页 |
致谢 | 第61-62页 |
参考文献 | 第62-65页 |
作者在学期间取得的学术成果 | 第65-66页 |
附录A OpenTuner使用手册 | 第66-76页 |
附录B process_all代码实现 | 第76-77页 |