摘要 | 第1-5页 |
Abstract | 第5-10页 |
1 并行计算概论 | 第10-24页 |
1.1 含义与意义 | 第10页 |
1.1.1 含义 | 第10页 |
1.1.2 意义 | 第10页 |
1.2 并行计算机的分类 | 第10-12页 |
1.2.1 SIMD计算机与MIMD计算机 | 第10-11页 |
1.2.2 共享存储和分布式存储的并行计算机 | 第11页 |
1.2.3 广泛流行的并行计算机-机群 | 第11-12页 |
1.3 并行计算与计算流体力学 | 第12-13页 |
1.4 并行计算的两种模型 | 第13-14页 |
1.4.1 消息传递模型 | 第13-14页 |
1.4.2 共享存储模型 | 第14页 |
1.5 并行算法 | 第14-15页 |
1.6 并行性能分析指标 | 第15-21页 |
1.6.1 加速比及效率 | 第15-16页 |
1.6.2 Amdahl定律 | 第16-17页 |
1.6.3 Gustafon-Barsis定律 | 第17-18页 |
1.6.4 Karp-Flatt量度 | 第18-19页 |
1.6.5 等效指标 | 第19-21页 |
1.6.6 结论 | 第21页 |
1.7 本文并行软硬件环境介绍 | 第21-22页 |
1.7.1 并行软件环境搭设 | 第21-22页 |
1.7.2 并行硬件环境搭设 | 第22页 |
1.8 本文主要工作 | 第22-24页 |
2 MPI(Message Passing Interface)的消息传递并行 | 第24-36页 |
2.1 MPI概述 | 第24-26页 |
2.1.1 MPI的含义 | 第24页 |
2.1.2 MPI的实现平台 | 第24页 |
2.1.3 MPI通信域 | 第24-25页 |
2.1.4 MPI程序的总体结构 | 第25-26页 |
2.1.5 目前主要的MPI实现 | 第26页 |
2.2 基本的MPI函数 | 第26-28页 |
2.2.1 MPI的初始化 | 第26页 |
2.2.2 MPI的结束 | 第26-27页 |
2.2.3 MPI得到当前进程号 | 第27页 |
2.2.4 MPI得到总的进程数 | 第27页 |
2.2.5 MPI发送数据 | 第27页 |
2.2.6 MPI接收数据 | 第27-28页 |
2.3 高级MPI函数 | 第28-30页 |
2.3.1 捆绑发送接收 | 第28页 |
2.3.2 非阻塞通信 | 第28-29页 |
2.3.3 MPI广播数据 | 第29页 |
2.3.4 MPI收集数据 | 第29页 |
2.3.5 MPI虚拟拓扑结构——笛卡儿拓扑结构 | 第29-30页 |
2.4 在Windows环境下安装和MPICH2设置 | 第30-33页 |
2.4.1 安装MPICH2及设置环境变量 | 第30页 |
2.4.2 MPICH2在Intel(R)Fortran Compiler 8.0下的设置 | 第30-32页 |
2.4.3 MPICH2在Microsft Visual Studio. NET 2003下的设置 | 第32页 |
2.4.4 MPICH2在Compaq Visual Fortran 6下的设置 | 第32-33页 |
2.4.5 MPICH2在Microsoft Visual C++6.0下的设置 | 第33页 |
2.5 MPI程序的运行 | 第33-35页 |
2.5.1 运行方法 | 第33页 |
2.5.2 运行演示 | 第33-35页 |
2.6 本章小结 | 第35-36页 |
3 MPI并行程序设计 | 第36-54页 |
3.1 概述 | 第36页 |
3.2 矩阵相乘(Cannon算法)的并行算法及程序设计 | 第36-40页 |
3.2.1 算法描述 | 第36-37页 |
3.2.2 并行程序设计 | 第37-39页 |
3.2.3 扩展性分析 | 第39-40页 |
3.2.4 程序设计总结 | 第40页 |
3.3 稳定状态温度分布问题的并行化 | 第40-44页 |
3.3.1 算法描述 | 第40-41页 |
3.3.2 并行程序设计 | 第41-44页 |
3.3.3 扩展性分析 | 第44页 |
3.3.4 程序设计总结 | 第44页 |
3.4 程序运行及结果分析 | 第44-52页 |
3.4.1 矩阵相乘并行程序运行结果及分析 | 第45-47页 |
3.4.2 稳定状态温度分布问题的并行程序运行结果及分析 | 第47-52页 |
3.5 本章小结 | 第52-54页 |
4 共享存储的并行计算-OpenMP | 第54-66页 |
4.1 OpenMP概述 | 第54-55页 |
4.1.1 执行模型 | 第54页 |
4.1.2 线程控制 | 第54-55页 |
4.2 OpenMP Fortran语言的应用程序接口 | 第55-60页 |
4.2.1 OpenMP Fortran接口标准 | 第55页 |
4.2.2 OpenMP Fortran并行区域结构体 | 第55-56页 |
4.2.3 对do循环的并行化 | 第56页 |
4.2.4 声明私有变量 | 第56-57页 |
4.2.5 临界区 | 第57-59页 |
4.2.6 归约操作 | 第59-60页 |
4.3 OpenMP的并行编程 | 第60-64页 |
4.3.1 OpenMP在Intel(R)Fortran Compiler 8.0下的设置 | 第60页 |
4.3.2 算例 | 第60-64页 |
4.4 本章小结 | 第64-66页 |
5 融合MPI和OpenMP的并行程序设计 | 第66-85页 |
5.1 融合MPI和OpenMP | 第66页 |
5.2 混编实现-非结构化网格的有限元法求解温度场 | 第66-83页 |
5.2.1 问题描述 | 第67-68页 |
5.2.2 网格剖分 | 第68页 |
5.2.3 区域分裂法(DDM) | 第68-69页 |
5.2.4 程序结构 | 第69-71页 |
5.2.5 区域划分 | 第71-74页 |
5.2.6 数据传输 | 第74-77页 |
5.2.7 计算结果验证 | 第77页 |
5.2.8 计算结果分析 | 第77-82页 |
5.2.9 计算效率分析 | 第82-83页 |
5.3 本章小结 | 第83-85页 |
6 结论与展望 | 第85-87页 |
参考文献 | 第87-90页 |
攻读硕士学位期间发表学术论文情况 | 第90-91页 |
致谢 | 第91-92页 |
大连理工大学学位论文版权使用授权书 | 第92页 |