摘要 | 第1-11页 |
ABSTRACT | 第11-13页 |
第一章 绪论 | 第13-21页 |
·课题背景 | 第13-16页 |
·多核处理器技术的发展 | 第13-14页 |
·并行编程的困境 | 第14-15页 |
·事务存储思想的引入和发展 | 第15-16页 |
·研究现状 | 第16-18页 |
·Intel STM 编译器原型版本 | 第16-17页 |
·IBM C/C++ Transaction Memory For AIX | 第17页 |
·Stanford OpenTM | 第17页 |
·RSTM | 第17-18页 |
·GCC-TM | 第18页 |
·TinySTM TANGER | 第18页 |
·本文研究内容与创新 | 第18-19页 |
·本文结构 | 第19-21页 |
第二章 事务存储编程接口研究 | 第21-31页 |
·事务存储介绍 | 第21-24页 |
·事务存储的基本思想 | 第21页 |
·事务存储的实现方式 | 第21-22页 |
·事务存储系统中的基本概念 | 第22-23页 |
·事务的执行过程和生命周期 | 第23-24页 |
·关于事务存储编程的考虑 | 第24-26页 |
·事务在现有程序运行环境中的适应性 | 第24页 |
·编程模式:语言支持v.s. 库支持 | 第24-25页 |
·编译器可以完成的工作 | 第25-26页 |
·事务存储编程接口研究 | 第26-31页 |
·典型的事务存储编程接口类型 | 第26-27页 |
·三种事务存储编程接口比较 | 第27-31页 |
第三章 基于OpenMP 的FORTRAN 语言事务存储编程环境设计 | 第31-40页 |
·基本设计框架 | 第31-32页 |
·FortranTM API 设计 | 第32-36页 |
·FortranTM API 的语法 | 第32-33页 |
·FortranTM API 的Source-to-Source 转换 | 第33-35页 |
·本节小结 | 第35-36页 |
·事务存储系统运行时库接口 | 第36-39页 |
·STM 提供的事务化原语接口 | 第36-37页 |
·STM 系统的运行机制 | 第37-38页 |
·FortranTM 运行时库接口设计 | 第38-39页 |
·本章小结 | 第39-40页 |
第四章 FortranTM 的实现. | 第40-58页 |
·Sage++对源程序的处理 | 第40-43页 |
·Sage++语法分析流程 | 第40-41页 |
·d ep 文件的组织形式 | 第41-43页 |
·omp2f 重构流程 | 第43页 |
·编译前端:API 识别以及在语法树中的表示 | 第43-46页 |
·定义token 和关键字 | 第43-44页 |
·添加语法树节点 | 第44页 |
·语法规则 | 第44-46页 |
·本节小结 | 第46页 |
·语法树重构:事务化插桩 | 第46-52页 |
·构造事务执行环境 | 第46-48页 |
·事务开始和结束 | 第48-49页 |
·事务化读写 | 第49-51页 |
·本节小结 | 第51-52页 |
·STM 运行时库接口实现 | 第52-56页 |
·Fortran-C 接口 | 第52-53页 |
·基于TL2 的事务化运行时接口实现 | 第53-55页 |
·基于TinySTM 的事务化运行时接口实现 | 第55-56页 |
·本章小结 | 第56-58页 |
第五章 FortranTM 降低事务系统开销的策略 | 第58-67页 |
·斯坦福STAMP 事务存储测试程序读写开销分析. | 第58页 |
·excluded 子句的引入和处理 | 第58-61页 |
·语法和语义 | 第59-60页 |
·excluded 语义实现 | 第60-61页 |
·事务化循环中的事务长度处理策略 | 第61-65页 |
·循环展开 | 第62-63页 |
·循环分块 | 第63-65页 |
·关于事务长度的考虑 | 第65页 |
·本章小结 | 第65-67页 |
第六章 FortranTM 测试 | 第67-72页 |
·功能测试 | 第67-68页 |
·性能测试 | 第68-72页 |
·并行性能测试 | 第68-69页 |
·excluded 子句的性能测试 | 第69-70页 |
·事务长度对程序性能的影响 | 第70-72页 |
第七章 结束语 | 第72-74页 |
·工作总结 | 第72-73页 |
·下一步工作 | 第73-74页 |
致谢 | 第74-75页 |
参考文献 | 第75-79页 |
作者在学期间取得的学术成果 | 第79页 |