| 摘 要 | 第1-5页 |
| ABSTRACT | 第5-12页 |
| 第一章 引言 | 第12-23页 |
| ·高性能计算 | 第12-13页 |
| ·并行程序设计模型与OpenMP标准 | 第13-14页 |
| ·当前OpenMP研究的主要问题与研究现状 | 第14-17页 |
| ·面向OpenMP的编译优化 | 第17-20页 |
| ·OpenMP的源代码级优化技术 | 第18页 |
| ·OpenMP的翻译与翻译时刻优化 | 第18-19页 |
| ·面向显式多线程程序的编译优化技术 | 第19页 |
| ·针对OpenMP程序的运行时优化 | 第19页 |
| ·其它相关的研究 | 第19-20页 |
| ·本文的工作 | 第20-23页 |
| ·研究内容 | 第20页 |
| ·论文组织 | 第20-21页 |
| ·主要贡献 | 第21-23页 |
| 第二章 OPENMP程序形式与开销分析方法 | 第23-37页 |
| ·OpenMP程序的形式 | 第23-29页 |
| ·fork-join类型的OpenMP程序 | 第24-25页 |
| ·SPMD类型的OpenMP程序 | 第25-27页 |
| ·进行数据分布的SPMD类型OpenMP程序 | 第27-28页 |
| ·三种OpenMP程序形式的总体性能比较 | 第28-29页 |
| ·OpenMP代码的开销分析 | 第29-32页 |
| ·开销模型 | 第29-30页 |
| ·并行性开发不足引起的额外开销 | 第30-31页 |
| ·并行性表达低效引起的额外开销 | 第31-32页 |
| ·对体系结构的其它特点欠优化引起的开销 | 第32页 |
| ·与本文内容有关的其它材料的说明 | 第32-36页 |
| ·程序 | 第32-33页 |
| ·编译器中间表示 | 第33页 |
| ·算法描述 | 第33-34页 |
| ·OpenMP Benchmarks | 第34-35页 |
| ·本文试验所基于的系统 | 第35-36页 |
| ·小结 | 第36-37页 |
| 第三章 源代码级OPENMP程序优化:调度参数优化 | 第37-51页 |
| ·OpenMP代码的自动生成与生成代码的特点 | 第37-38页 |
| ·基本方法与主要技术 | 第37-38页 |
| ·并行编译器产生的OpenMP代码的特点 | 第38页 |
| ·采用简单并行策略的用户OpenMP程序 | 第38-40页 |
| ·基本并行策略 | 第38-39页 |
| ·采用简单并行策略的用户OpenMP程序的特点 | 第39-40页 |
| ·并行循环调度方式的优化 | 第40-49页 |
| ·OpenMP 中的循环调度 | 第41-43页 |
| ·调度参数与调度的额外开销分析 | 第43-49页 |
| ·调度参数优化算法的效果 | 第49页 |
| ·小结 | 第49-51页 |
| 第四章 OPENMP程序的SPMD化及其优化 | 第51-85页 |
| ·并行块扩张 | 第51-71页 |
| ·并行块扩张算法的基本问题 | 第51-52页 |
| ·并行任务结构图 | 第52-54页 |
| ·并行任务结构图的构造 | 第54-55页 |
| ·并行任务图上的基本操作 | 第55-57页 |
| ·处理控制流 | 第57-58页 |
| ·并行块扩张中的同步操作 | 第58-61页 |
| ·用于并行块合并的变量私有化技术 | 第61-64页 |
| ·串行部分的转换 | 第64-66页 |
| ·跨越函数边界的并行任务块合并 | 第66-68页 |
| ·并行任务块合并算法的边界 | 第68-69页 |
| ·并行块合并算法的有效性 | 第69-71页 |
| ·冗余指导语句删除 | 第71-79页 |
| ·嵌套并行与冗余指导语句删除 | 第71页 |
| ·过程内的嵌套指导语句的删除 | 第71-73页 |
| ·跨越过程边界的嵌套指导语句的删除 | 第73-75页 |
| ·冗余同步语句的删除 | 第75-78页 |
| ·冗余指导语句删除算法的效果 | 第78-79页 |
| ·针对变量数据属性的优化 | 第79-83页 |
| ·任务数据属性与并行块内变量数据属性优化 | 第79-82页 |
| ·Threadprivate变量的识别 | 第82页 |
| ·变量数据属性说明优化算法的效果 | 第82-83页 |
| ·相关工作及与本文工作的对比 | 第83-85页 |
| 第五章 OPENMP翻译 | 第85-121页 |
| ·OpenMP翻译的基本技术 | 第85-106页 |
| ·OpenMP翻译的基本问题 | 第85-86页 |
| ·并行块指导语句的翻译 | 第86-87页 |
| ·并行任务块指导语句的翻译 | 第87-96页 |
| ·同步指导语句的翻译 | 第96-97页 |
| ·数据属性指导语句的翻译 | 第97-106页 |
| ·编译时刻的嵌套关系分析 | 第106-119页 |
| ·动态嵌套与翻译类型分析 | 第107-111页 |
| ·局部嵌套类型分析 | 第111-113页 |
| ·过程间的翻译类型分析 | 第113-115页 |
| ·嵌套类型的可分析性 | 第115-116页 |
| ·基于嵌套类型分析的翻译与优化 | 第116-119页 |
| ·相关工作比较与本章小结 | 第119-121页 |
| 第六章 OPENMP编译系统的设计与实现 | 第121-140页 |
| ·系统概述 | 第121-122页 |
| ·ORC-OpenMP编译器的系统结构 | 第122-123页 |
| ·OpenMP翻译模块 | 第123-126页 |
| ·OpenMP优化模块 | 第126-127页 |
| ·OpenMP运行时库设计 | 第127-133页 |
| ·基本框架 | 第127-128页 |
| ·线程模型 | 第128-129页 |
| ·线程组模型 | 第129-131页 |
| ·同步模型 | 第131页 |
| ·任务模型 | 第131-132页 |
| ·其它设计要点 | 第132-133页 |
| ·与其它OpenMP编译器的性能比较 | 第133-138页 |
| ·调度和同步开销比较 | 第133-135页 |
| ·总体性能比较 | 第135-137页 |
| ·生成代码质量比较 | 第137-138页 |
| ·本章小结 | 第138-140页 |
| 第七章 本文总结和进一步工作 | 第140-143页 |
| ·总结 | 第140-141页 |
| ·进一步工作 | 第141-143页 |
| 参考文献 | 第143-156页 |
| 个人简历、在学期间的研究成果及发表的论文 | 第156-158页 |
| 个人简历 | 第156页 |
| 在国际和国内学术刊物上发表的论文 | 第156-158页 |
| 致谢及声明 | 第158页 |