1、并行计算的定义:就是用多个处理器解决一个问题。
2、按照flynn分类可分为:单指令流单数据流、单指令流多数据流、多指令单数据流(没人用)、多指令流多数据流
3、多指令多数据流可以按照存储方式进行分类:
-
共享内存:SMP
-
分布式共享内存:DSM
-
分布式存储:MPP、COW
这部分配合上一节课内容记忆
4、计算机系统分类: -
SPDM:同时执行相同的程序对不同的数据操作
-
MOMD:同时有多个程序对不同的数据进行操作
5、PRAM:使用一个集中的共享存储器和一个指令控制器,通过共享存储(SM)来交换数据,不适合用来做实际的MIMD,因为它忽略了同时访问SM的竞争以及一个指令控制器导致的通信的延迟。
6、APRAM:异步PRAM每个处理器都有独立的存储器,以及时钟和程序,处理器通过SM进行通讯,需要加入同步路障。
7、BSP块同步,中间形态呗,块内异步并行,块间显示同步。
8、并行算法设计方法: -
1、串行算法并行化
-
2、直接设计
-
3、借助已有算法求解新问题
9、并行算法设计过程: -
划分:分解成小任务,开拓并发性
-
通讯:确认任务之间的数据交互,监测划分的合理性
-
组合:根据任务的局部性,组合成为更大的任务
-
映射:将每个任务都分配到处理器上,提高算法的性能
10、算法的性能评测:加速比定律:一个并行算法的执行速度相对于串行算法提高了多少倍。
11、三种算法解析: -
amdahl定律:(阿姆达尔):适用于对于实时性要求高的科学计算
计算量(工作负载)不随处理器的变化而变化。
执行时间随着处理器的增多而减少 -
gustafson定律:(古斯塔夫森):适用于精度要求高的科学计算
计算量随着处理器的增多而变大
执行时间不随着处理器的变化而变化 -
Sun Ni定律:提出了存储受限的加速定律
计算量随着处理器的增多而变大
执行时间随着处理器的增多而增多