1、1并行计算课程总结与复习 2017/5/15第一篇 并行计算硬件平台:并行计算机Ch1 并行计算与并行计算机结构模型1.1 计算与计算机科学1.2 单处理机与指令级并行1.3 多核处理器与线程级并行 何谓多核处理器及意义 微处理器中的并行方式 ILP, TLP, 多任务 OS, SMT, CMP, 虚拟化技术 Intel 超线程技术1.4 并行计算机体系结构 并行计算机结构模型 SISD, SIMD, MISD, MIMD; SIMD, PVP, SMP, MPP, COW(Cluster), DSM 并行计算机访存模型 UMA,NUMA,COMA,CC-NUMA,NORMA 不同存储结构的并
2、行机系统(P20 图 1.11)1.5 更多的并行计算概念 PFLOPS, TFLOPS, GFLOPS TOP500 中的 Rmax 和 Rpeak 指标Ch2 并行计算机系统互连与基本通信操作2.1 并行计算机互连网络 并行计算机的互连方式 静态互连:LA(LC), MC, TC, HC;(P42 表 2.1 各种网络特性表) 动态互连:Bus, Crossbar Switcher, MIN(Multistage Interconnection Networks) 特别地,标准网络互连:FDDI, 快速以太网, Myrinet, InfiniBand2.2-2.5 通信代价公式 SF 和
3、CT 基本公式 SF 和 CT 在一维环、带环绕的 Mesh、超立方上的通信代价公式Ch3 典型并行计算机系统介绍(略)3.1 共享存储多处理机系统3.2 分布存储多计算机系统3.3 分布共享存储计算机系统3.4 机群系统2Ch4 并行计算性能评测4.1 基本性能指标4.2 加速比性能定律 Amdahl, Gustafson, Sun&Ni 定律4.3 可扩放性评测标准(略) 可扩放性的含义 三个评测标准:等效率度量,等速度度量,平均延迟度量4.4 基准测试程序(略) SPEC, LinPACK第二篇 并行计算理论基础:并行算法设计Ch5 并行算法与并行计算模型5.1 并行算法的基础知识 并行
4、算法的定义 并行算法的表达 并行算法的复杂度:运行时间、处理器数目、成本及成本最优、加速比、并行效率、工作量及工作量最优 并行算法的 WT 表示:Brent 定理5.2 并行计算模型 PRAM 模型:SIMD-SM,又分 CRCW(CPRAM, PPRAM, APRAM), CREW, EREW SIMD-IN 模型:SIMD-DM 异步 APRAM 模型:MIMD-SM BSP 模型: MIMD-DM,块内异步并行,块间显式同步 LogP 模型:MIMD-DM,点到点通讯Ch6 并行算法基本设计策略 并行算法的三种设计策略:串改并,全新设计,借用法 及其示例:快排序、前缀和/k 着色、所有点
5、对最短路径Ch7 并行算法常用设计技术 划分设计技术:均匀划分(PSRS 排序)、对数划分(并行归并排序)、方根划分(Valiant 归并排序) 、功能划分( (m,n)-选择) 分治设计技术:双调归并网络 平衡树设计技术:求最大值、计算前缀和 倍增设计技术:表序问题、求森林的根 流水线技术:五点的 DFT 计算、4 流水线编程实例Ch8 并行算法一般设计过程 PCAM 的含义 PCAM 设计方法的四个阶段和每个阶段的任务与目标(略)3 域分解和功能分解(略)第三篇 并行计算理论基础:并行数值算法Ch9 稠密矩阵运算 9.1 矩阵的划分 带状划分和棋盘划分,有循环的带状划分和棋盘划分9.2 矩
6、阵转置 网孔和超立方连接的算法及其时间分析(棋盘划分)9.3 矩阵向量乘法 带状划分的算法及其时间分析 棋盘划分的算法及其时间分析 Systolic 算法(略)9.4 矩阵乘法 简单并行分块算法 Cannon 算法及其计算示例 Fox 算法及其计算示例 DNS 算法及其计算示例(略) Systolic 算法(略)Ch10 线性方程组的求解 回代求解上三角形方程组的并行算法及其数据划分方法 三对角方程组的奇偶规约求解法 Gauss-Seidel 迭代法的并行化 异步并行化算法 小规模并行化算法(针对五点格式产生的线性方程组) 红黑着色并行算法(针对五点格式产生的线性方程组)Ch11 快速傅立叶变
7、换 FFT 离散傅里叶变换(DFT)定义及其 O(n2)算法 串行 FFT 蝶式分治算法的计算原理、伪代码及其递归计算流图 串行 FFT 分治递归算法的计算原理 SIMD-MC 上的 FFT 算法(略) SIMD-BF 上的 FFT 算法及其时间分析Ch12 数值计算的基本支撑技术(略) 网格生成 图的划分 稀疏线性系统求解器 算法和软件 科学计算可视化4第四篇 并行计算软件支撑:并行编程Ch13 并行程序设计基础 基本概念和术语Ch14 共享存储系统并行编程 OpenMP 编程Ch15 分布存储系统并行编程 MPI 编程Ch16 并行程序设计环境与工具(略) Intel 的 Parallel Studio补充篇 GPU 体系结构及编程 术语:GPU, GPGPU NVIDIA G80 的体系结构 SM 的组成 存储器:层次结构和特点,全局存储器的 coalesced memory access,共享存储器的存储体冲突 线程组织结构:线程、线程块、线程网格,Warp 执行机制 同步:线程块内和块间的同步,CPU 和 GPU 间的同步 CUDA 编程(略) CUDA 程序的性能优化(略) 矩阵乘法及其优化(略)