摘要 | 第5-6页 |
Abstract | 第6-7页 |
第1章 绪论 | 第14-22页 |
1.1 研究背景 | 第14-15页 |
1.2 相关工作 | 第15-18页 |
1.2.1 面向集群MapReduce的发展现状 | 第15页 |
1.2.2 多核MapReduce的相关研究 | 第15-18页 |
1.2.3 多核可伸缩性的相关研究 | 第18页 |
1.3 研究内容 | 第18-20页 |
1.4 论文组织 | 第20-22页 |
第2章 基础知识与问题分析 | 第22-36页 |
2.1 Phoenix | 第22-27页 |
2.1.1 执行流程与编程接口 | 第22-23页 |
2.1.2 中间结构的设计 | 第23-24页 |
2.1.3 可伸缩性评估 | 第24-27页 |
2.1.4 Phoenix局限性总结 | 第27页 |
2.2 Phoenix较差可伸缩性的分析 | 第27-32页 |
2.2.1 Linux进程地址空间的组织 | 第27-28页 |
2.2.2 多线程对共享地址空间的竞争 | 第28-30页 |
2.2.3 线程睡眠唤醒的开销 | 第30-32页 |
2.3 已有减少地址空间竞争的方案 | 第32-35页 |
2.3.1 地址空间的重新组织 | 第32-33页 |
2.3.2 锁的优化 | 第33-34页 |
2.3.3 VMA cache机制的改进 | 第34-35页 |
2.4 本章小结 | 第35-36页 |
第3章 基于新型线程模型Sthread设计并实现SMR | 第36-50页 |
3.1 概述 | 第36-37页 |
3.2 新型线程模型Sthread | 第37-41页 |
3.2.1 Sthread及其编程接口 | 第37-39页 |
3.2.2 无边界通道与重映射机制 | 第39-40页 |
3.2.3 Sthread的特点与优势 | 第40-41页 |
3.3 SMR的设计与实现 | 第41-45页 |
3.3.1 SMR运行时系统 | 第41-43页 |
3.3.2 无阻塞的流水线并行 | 第43-44页 |
3.3.3 Sthread隔离地址空间为SMR带来编程挑战 | 第44-45页 |
3.4 SMR中间结构的设计与优化 | 第45-48页 |
3.4.1 map私有中间结构的设计与实现 | 第45-46页 |
3.4.2 中间结构的底层实现 | 第46-48页 |
3.4.3 底层实现的优化 | 第48页 |
3.5 本章小结 | 第48-50页 |
第4章 实验评估 | 第50-60页 |
4.1 测试环境与数据集 | 第50页 |
4.2 SMR的性能与可伸缩性的评估 | 第50-53页 |
4.2.1 性能评估 | 第51-52页 |
4.2.2 可伸缩性评估 | 第52-53页 |
4.3 评估影响SMR性能的因素 | 第53-56页 |
4.3.1 缓存优化对性能的影响 | 第53-54页 |
4.3.2 开启combiner对性能的影响 | 第54-55页 |
4.3.3 SMR较高的初始化时间 | 第55-56页 |
4.4 Linux内核版本对多核MapReduce库性能的影响 | 第56-59页 |
4.4.1 内核优化对多核MapReduce库的影响评估 | 第57-58页 |
4.4.2 最新内核版本下多核MapReduce库的性能评估 | 第58-59页 |
4.5 本章小结 | 第59-60页 |
第5章 面向多核可伸缩的迭代式MapReduce的探究 | 第60-66页 |
5.1 研究背景 | 第60页 |
5.2 Sthread实现迭代式MapReduce库的局限性和挑战 | 第60-62页 |
5.3 iSMR的设计与实现 | 第62-65页 |
5.3.1 混合线程模型PMthreads | 第62-63页 |
5.3.2 线程池的设计和iSMR的实现 | 第63-65页 |
5.4 本章小节 | 第65-66页 |
第6章 结束语 | 第66-68页 |
参考文献 | 第68-72页 |
致谢 | 第72-74页 |
在读期间发表的学术论文与取得的研究成果 | 第74页 |