面向多线程程序的确定性并行关键技术研究
摘要 | 第10-12页 |
Abstract | 第12-13页 |
第一章 绪论 | 第14-38页 |
1.1 研究背景 | 第15-18页 |
1.1.1 多线程程序的可靠性问题 | 第15-16页 |
1.1.2 不确定性带来的挑战 | 第16-17页 |
1.1.3 确定性并行技术带来的机遇 | 第17-18页 |
1.2 相关研究 | 第18-32页 |
1.2.1 数据竞争检测技术 | 第18-22页 |
1.2.2 确定性回放技术 | 第22-25页 |
1.2.3 确定性并行技术 | 第25-32页 |
1.3 研究内容及贡献 | 第32-36页 |
1.3.1 本文的研究内容 | 第32-34页 |
1.3.2 本文的主要贡献 | 第34-36页 |
1.4 文章结构 | 第36-38页 |
第二章 静态数据竞争检测的误报剔除技术 | 第38-58页 |
2.1 静态数据竞争检测的误报问题 | 第38-43页 |
2.1.1 Relay静态数据竞争检测器 | 第39页 |
2.1.2 Relay检测报告统计 | 第39-41页 |
2.1.3 对检测报告的分析 | 第41-43页 |
2.2 线程例化 | 第43-48页 |
2.2.1 总体设计 | 第43-45页 |
2.2.2 工作流程 | 第45-48页 |
2.3 懒惰调整 | 第48-50页 |
2.3.1 只读指针数组 | 第48页 |
2.3.2 懒惰调整 | 第48-50页 |
2.4 Happens-before分析 | 第50-53页 |
2.4.1 代码段分析 | 第50-51页 |
2.4.2 阶段分析 | 第51-53页 |
2.5 评测 | 第53-55页 |
2.6 本章小结 | 第55-58页 |
第三章 面向强确定性执行的程序分析技术 | 第58-76页 |
3.1 强确定性执行系统的效率问题 | 第58-61页 |
3.2 系统设计 | 第61-64页 |
3.3 Loads-in-Quantum缓冲策略 | 第64-69页 |
3.3.1 正确性标准 | 第64-65页 |
3.3.2 确定性标准 | 第65页 |
3.3.3 LIQ缓存策略 | 第65-66页 |
3.3.4 编译时插桩算法 | 第66-69页 |
3.4 评测 | 第69-73页 |
3.4.1 评测方法 | 第69-70页 |
3.4.2 性能和可扩展性 | 第70-71页 |
3.4.3 线程例化和LIQ的优化效果 | 第71-73页 |
3.4.4 静态分析的时间开销 | 第73页 |
3.5 本章小结 | 第73-76页 |
第四章 无全局同步的弱确定性执行技术 | 第76-96页 |
4.1 弱确定性的全局同步问题 | 第76-78页 |
4.2 LBDR系统设计 | 第78-80页 |
4.3 令牌自由模式 | 第80-85页 |
4.3.1 开始时机 | 第80-82页 |
4.3.2 结束时机 | 第82-83页 |
4.3.3 有效时间 | 第83-85页 |
4.4 LBDR系统实现 | 第85-88页 |
4.4.1 轮循调度器 | 第85-86页 |
4.4.2 同步操作 | 第86-87页 |
4.4.3 令牌自由模式 | 第87-88页 |
4.5 评测 | 第88-93页 |
4.5.1 评测方法 | 第88-89页 |
4.5.2 性能 | 第89-92页 |
4.5.3 可扩展性 | 第92-93页 |
4.6 讨论 | 第93-95页 |
4.7 本章小结 | 第95-96页 |
第五章 面向流水线并行的确定性执行技术 | 第96-110页 |
5.1 流水线并行的负载不均衡问题 | 第96-99页 |
5.2 面向流水线并行的确定性执行技术 | 第99-105页 |
5.2.1 总体设计 | 第100-101页 |
5.2.2 系统框架 | 第101-102页 |
5.2.3 同步自由区 | 第102-104页 |
5.2.4 单线程区 | 第104-105页 |
5.3 评测 | 第105-108页 |
5.3.1 程序注释 | 第106页 |
5.3.2 性能 | 第106-107页 |
5.3.3 可扩展性 | 第107-108页 |
5.4 本章小结 | 第108-110页 |
第六章 结论与展望 | 第110-114页 |
6.1 工作总结 | 第110-112页 |
6.2 研究展望 | 第112-114页 |
致谢 | 第114-116页 |
参考文献 | 第116-124页 |
作者在学期间取得的学术成果 | 第124页 |