摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第1章 绪论 | 第14-20页 |
1.1 研究背景 | 第14-15页 |
1.2 相关工作 | 第15-18页 |
1.2.1 确定性记录重放 | 第15-16页 |
1.2.2 确定性逻辑时钟 | 第16页 |
1.2.3 DetMPI | 第16-17页 |
1.2.4 无阻塞通信 | 第17-18页 |
1.3 研究内容 | 第18-19页 |
1.4 论文组织 | 第19-20页 |
第2章 基础知识 | 第20-29页 |
2.1 MPI编程模型介绍 | 第20-24页 |
2.1.1 MPI介绍 | 第20-21页 |
2.1.2 MPl接口 | 第21-22页 |
2.1.3 MPI库存在的不确定性 | 第22-24页 |
2.2 确定性的消息传递多线程编程模型 | 第24-28页 |
2.2.1 SPMC虚拟内存模型 | 第25-26页 |
2.2.2 D-MP编程接口 | 第26-27页 |
2.2.3 D-MPI的阻塞实现及存在的问题 | 第27-28页 |
2.3 本章小结 | 第28-29页 |
第3章 无阻塞消息通道的设计方案 | 第29-39页 |
3.1 阻塞通信和无阻塞通信的区别 | 第29-31页 |
3.2 基本通信场景 | 第31-32页 |
3.3 无阻塞通信的支持 | 第32-34页 |
3.3.1 SPMC模型的无阻塞通信 | 第32-33页 |
3.3.2 无阻塞的DetMP编程模型 | 第33-34页 |
3.4 DetMPI阻塞实现的改进 | 第34-37页 |
3.5 无阻塞消息通道的确定性 | 第37-38页 |
3.5.1 底层SPMC模型的确定性 | 第37页 |
3.5.2 编程接口语义的确定性 | 第37-38页 |
3.6 本章小结 | 第38-39页 |
第4章 无阻塞消息通道的实现与评估 | 第39-56页 |
4.1 无阻塞消息通道的两种设计方案 | 第39-40页 |
4.2 元数据的管理 | 第40-43页 |
4.2.1 请求对象的结构 | 第40-41页 |
4.2.2 请求的分配和回收 | 第41页 |
4.2.3 请求的管理 | 第41-43页 |
4.2.4 匹配信息的结构 | 第43页 |
4.3 SelfMP的实现 | 第43-46页 |
4.3.1 chan_isend无阻塞发送消息 | 第43-44页 |
4.3.2 chan_irecv无阻塞接收消息 | 第44页 |
4.3.3 chan_wait等待完成单个请求 | 第44-45页 |
4.3.4 chan_bsend阻塞发送消息 | 第45页 |
4.3.5 chan_brecv阻塞接收 | 第45页 |
4.3.6 chan_test测试请求 | 第45页 |
4.3.7 chan_waitall等待完成多个请求 | 第45页 |
4.3.8 chan_send_to_self向自身发送消息 | 第45-46页 |
4.3.9 chan_recv_from_self从自身接收消息 | 第46页 |
4.3.10 recv_msg从通道中接收消息 | 第46页 |
4.4 CothreadMP的实现 | 第46-49页 |
4.4.1 编程接口 | 第46-47页 |
4.4.2 协线程的管理 | 第47-48页 |
4.4.3 CothreadMP主线程和协线程的交互 | 第48-49页 |
4.5 两种实现策略的确定性 | 第49-50页 |
4.6 实验 | 第50-54页 |
4.6.1 实验环境和评测方法 | 第50页 |
4.6.2 测试程序 | 第50-51页 |
4.6.3 性能分析 | 第51-53页 |
4.6.4 通信和计算的重叠 | 第53-54页 |
4.7 本章小结 | 第54-56页 |
第5章 消息通道的实现机制对DETMP编程模型的影响 | 第56-70页 |
5.1 概述 | 第56-57页 |
5.2 并发多播队列的实现框架 | 第57-60页 |
5.2.1 对上层DetMP编程模型的支持 | 第58-59页 |
5.2.2 对底层队列实现的支持 | 第59-60页 |
5.3 几种并发多播队列的实现细节 | 第60-63页 |
5.3.1 共享队列的几种实现 | 第60页 |
5.3.2 共享队列组织方式和同步控制操作 | 第60-61页 |
5.3.3 粗粒度锁队列 | 第61-62页 |
5.3.4 细粒度锁队列 | 第62页 |
5.3.5 无锁队列 | 第62-63页 |
5.4 实验结果与分析 | 第63-68页 |
5.4.1 测试平台介绍 | 第63-64页 |
5.4.2 测试程序介绍 | 第64页 |
5.4.3 消费者个数对DetMP程序性能的影响 | 第64-65页 |
5.4.4 可用核数对DetMP程序性能的影响 | 第65-67页 |
5.4.5 流水线并行程序dedup和ferret的性能分析 | 第67-68页 |
5.5 本章小结 | 第68-70页 |
第6章 总结与展望 | 第70-72页 |
参考文献 | 第72-76页 |
致谢 | 第76-78页 |
在读期间发表的学术论文与取得的研究成果 | 第78页 |