基于符号执行的MPI程序分析与验证技术研究
| 摘要 | 第8-10页 |
| ABSTRACT | 第10-12页 |
| 第一章 绪论 | 第13-29页 |
| 1.1 研究背景 | 第13-15页 |
| 1.2 MPI介绍 | 第15-19页 |
| 1.2.1 MPI简要介绍 | 第15-17页 |
| 1.2.2 MPI常见错误 | 第17-19页 |
| 1.3 研究动机 | 第19-20页 |
| 1.4 本文主要研究内容 | 第20-22页 |
| 1.4.1 同步MPI程序的符号执行 | 第20-21页 |
| 1.4.2 异步MPI程序的符号执行 | 第21页 |
| 1.4.3 查找异步MPI程序缓冲区错误 | 第21-22页 |
| 1.5 相关工作 | 第22-27页 |
| 1.5.1 共享内存程序缺陷检测 | 第23-24页 |
| 1.5.2 MPI程序的测试、分析和验证 | 第24-27页 |
| 1.6 论文结构 | 第27-29页 |
| 第二章 同步MPI程序的符号执行 | 第29-52页 |
| 2.1 符号执行技术简介及研究动机示例 | 第29-33页 |
| 2.1.1 符号执行技术 | 第29-30页 |
| 2.1.2 研究动机示例 | 第30-33页 |
| 2.2 符号执行同步MPI程序 | 第33-46页 |
| 2.2.1 即时调度 | 第35-37页 |
| 2.2.2 通配接收处理 | 第37-38页 |
| 2.2.3 正确性证明 | 第38-46页 |
| 2.3 工具实现 | 第46-48页 |
| 2.4 实验结果 | 第48-50页 |
| 2.5 本章总结 | 第50-52页 |
| 第三章 异步MPI程序的符号执行 | 第52-75页 |
| 3.1 非阻塞MPI调用 | 第52-54页 |
| 3.2 研究动机示例 | 第54-56页 |
| 3.2.1 非阻塞MPI调用带来的新问题 | 第54-56页 |
| 3.3 运行实例 | 第56-57页 |
| 3.4 异步处理方法与面向死锁的引导 | 第57-70页 |
| 3.4.1 扫描分段 | 第58-60页 |
| 3.4.2 段内匹配 | 第60-62页 |
| 3.4.3 面向死锁的符号执行引导 | 第62-70页 |
| 3.5 实现与实验评估 | 第70-74页 |
| 3.5.1 实现平台简要介绍 | 第70-71页 |
| 3.5.2 实验评估 | 第71-74页 |
| 3.6 本章总结 | 第74-75页 |
| 第四章 MPI程序缓冲区错误检测 | 第75-86页 |
| 4.1 研究动机示例 | 第75-77页 |
| 4.2 检查算法与优化 | 第77-82页 |
| 4.2.1 符号执行框架 | 第77-78页 |
| 4.2.2 缓冲区错误检查 | 第78-81页 |
| 4.2.3 优化技术 | 第81-82页 |
| 4.2.4 讨论 | 第82页 |
| 4.3 工具实现 | 第82-83页 |
| 4.4 实验评估 | 第83-85页 |
| 4.5 本章总结 | 第85-86页 |
| 第五章 总结与展望 | 第86-89页 |
| 5.1 本文总结 | 第86-87页 |
| 5.2 进一步工作 | 第87-89页 |
| 致谢 | 第89-91页 |
| 参考文献 | 第91-101页 |
| 作者在学期间取得的学术成果 | 第101页 |