声明
摘要
插图索引
附表索引
第1章 绪论
1.1 研究背景
1.1.1 新型异构众核系统的体系结构
1.1.2 基于异构众核系统的并行应用
1.1.3 异构协同并行计算面临的挑战
1.2 研究现状
1.2.1 异构众核系统中的编程模型
1.2.2 异构众核系统中的任务调度
1.2.3 异构众核系统中的通信优化
1.3 研究内容及贡献
1.3.1 本文的研究内容
1.3.2 本文的主要贡献
1.4 本文组织结构
第2章 基于指导语句的异构协同并行编程框架OpenHCPP
2.1 引言
2.2 相关工作
2.3 OpenHCPP并行编程框架的设计
2.3.1 OpenHCPP总体架构设计
2.3.2 设备间静态任务调度
2.3.3 OpenMP导语和子句的扩展
2.3.4 OpenHCPP编程案例
2.4 OpenHCPP并行编程框架的实现
2.4.1 OpenHCPP编译器
2.4.2 OpenHCPP运行时系统
2.5 实验评测
2.5.1 实验设置
2.5.2 可编程性评测
2.5.3 性能评测
2.6 小结
第3章 异构协同并行计算中设备间动态任务调度
3.1 引言
3.2 相关工作
3.2.1 Quick调度策略
3.2.2 Split调度策略
3.3 反馈式动态弹性任务调度策略
3.4 抢占式动态弹性任务调度策略
3.5 实验评测
3.5.1 多种动态任务调度策略性能对比
3.5.2 初始块大小性能影响分析
3.5.3 动态调度开销分析
3.6 小结
第4章 异构协同并行计算中设备问通信优化
4.1 引言
4.2 相关工作
4.3 增量式数据传输方法
4.3.1 增量式数据传输的产生背景
4.3.2 避免重复传输的反馈式动态任务调度
4.3.3 增量式数据传输的应用
4.4 基于软件流水线的通信优化方法
4.4.1 基于软件流水线的通信优化的基本思想
4.4.2 隐藏通信开销的反馈式动态弹性任务调度
4.4.3 隐藏通信开销的抢占式动态弹性任务调度
4.5 实验评测
4.5.1 通信优化前后性能对比
4.5.2 多GPU实验测试
4.5.3 与StarPU和OmpSs的性能比较
4.6 小结
第5章 异构协同并行计算在求解子集和问题中的应用
5.1 引言
5.2 相关工作
5.3 求解子集和问题的并行二表算法
5.3.1 并行二表算法的生成阶段
5.3.2 并行二表算法的剪块阶段
5.3.3 并行二表算法的搜索阶段
5.4 并行二表算法的异构协同并行实现
5.4.1 生成阶段的异构协同并行实现
5.4.2 剪块与搜索阶段的异构协同并行实现
5.5 实验评测
5.5.1 实验设置
5.5.2 不同并行实现的性能对比
5.5.3 不同测试平台的性能对比
5.5.4 不同背包容量的性能对比
5.6 小结
第6章 结论与展望
6.1 工作总结
6.2 研究展望
参考文献
致谢
攻读学位期间所完成的论文
攻读学位期间所参与的科研项目