声明
摘要
1 绪论
1.1 计算机的发展
1.2 多媒体和网络应用
1.3 多核处理器
1.4 并行编程带来的新挑战
1.5 本文工作
2 多核处理器
2.1 计算机常见体系分类
2.2 并行处理的分析
2.2.1 超线程技术(Hyper-Threading)
2.2.2 对称多处理器(SMP)
2.2.3 多核处理器(Multi-Core)
2.2.4 多核处理器的发展
2.3 多核处理器的特性
2.3.1 多核处理器对比单核处理器
2.3.2 多核体系结构中的超线程技术
2.4 小结
3 并行程序设计与分析
3.1 常见的并行程序设计
3.1.1 扩展编译器
3.1.2 扩展串行编程语言
3.1.3 编程模型的新生
3.2 评价并行处理算法的性能
3.2.1 程序运行的时间
3.2.2 加速比和三大定律
3.2.3 并行度的定义
3.2.4 可扩展性分析和并行性的提高
3.3 小结
4 并行多核计算平台模型的分析
4.1 现有的多核并行处理任务调度算法
4.2 存在的问题
4.3 解决办法
4.4 多核处理器并行计算模型的设计
4.4.1 任务是最小的处理对象
4.4.2 基于动态负载均衡的任务分配策略
4.4.3 任取窃取的负载调整策略
4.5 小结
5 多核的并行计算平台实现
5.1 平台的实现
5.2 任务模型的实现
5.3 动态负载均衡任务分配算法的实现
5.4 任取窃取的实现
5.5 具体问题任取窃取策略的实现
5.6 小结
6 实验和数据分析
6.1 实验环境介绍
6.2 实验结果分析
6.2.1 CPU运行性能分析
6.2.2 VTune计数器监控实验
6.2.3 优化之后性能对比
6.2.4 串行与并行时间的对比
6.2.5 加速比性能的对比
6.3 小结
7 总结与展望
7.1 总结
7.2 创新与贡献
7.3 展望
参考文献
9 攻读硕士学位期间发表论文情况
致谢