中文摘要 | 第3-4页 |
Abstract | 第4-5页 |
第一章 绪论 | 第8-12页 |
1.1 研究背景及意义 | 第8-9页 |
1.2 研究现状 | 第9-10页 |
1.2.1 并行计算研究现状 | 第9-10页 |
1.2.2 Sphgen程序的发展现状 | 第10页 |
1.3 本文主要内容 | 第10-11页 |
1.4 小结 | 第11-12页 |
第二章 并行计算以及串行Sphgen程序介绍 | 第12-23页 |
2.1 四种常用的并行计算机系统 | 第12-15页 |
2.1.1 共享内存系统 | 第12-13页 |
2.1.2 分布式内存系统 | 第13页 |
2.1.3 混合系统 | 第13-14页 |
2.1.4 GPU并行计算设备 | 第14-15页 |
2.2 并行程序编程接口 | 第15-18页 |
2.2.1 多线程应用程序编程接口—OpenMP | 第15页 |
2.2.2 消息传递接口(MPI) | 第15-16页 |
2.2.3 混合系统编程接口—MPI+OpenMP | 第16页 |
2.2.4 GPU并行计算设备的软件体系架构—CUDA | 第16-18页 |
2.3 并行程序加速比 | 第18-19页 |
2.4 并行程序设计 | 第19-20页 |
2.5 生成小球的串行Sphgen程序 | 第20-22页 |
2.6 小结 | 第22-23页 |
第三章 基于Pthreads的并行Sphgen程序的三种改进方法 | 第23-33页 |
3.1 原有的并行Sphgen程序的负载均衡问题 | 第23-25页 |
3.2 三种改进的并行Sphgen程序 | 第25-32页 |
3.2.1 去除零原子 | 第25-27页 |
3.2.2 非均匀划分法 | 第27-30页 |
3.2.3 动态调度 | 第30-32页 |
3.3 小结 | 第32-33页 |
第四章 基于MPI+OpenMP的并行Sphgen程序 | 第33-40页 |
4.1 MPI传递C++对象的三种方法 | 第33-39页 |
4.1.1 手动方式 | 第33-34页 |
4.1.2 对象序列化 | 第34-37页 |
4.1.3 MPI_Send_Object和MPI_Recv_Object函数 | 第37-39页 |
4.2 实验 | 第39页 |
4.3 小结 | 第39-40页 |
第五章 基于CUDA的并行Sphgen程序 | 第40-43页 |
5.1 并行Sphgen程序开发过程 | 第40-41页 |
5.2 实验 | 第41页 |
5.3 三种并行Sphgen方法的计算时间比较 | 第41-42页 |
5.4 小结 | 第42-43页 |
第六章 总结与展望 | 第43-45页 |
参考文献 | 第45-48页 |
致谢 | 第48页 |