一、基本知识
-
**RISC:**Reduced Instruction Set Computer
-
Moore’s Law(摩尔定律)
集成电路上可以容纳的晶体管数目在大约每经过18个月到24个月便会增加一倍。
-
Amdahl‘s Law(阿姆达尔定律)
$Speedup\\=\frac{Execution\space Time_{old}}{Execution\space Time_{new}}\\=\frac 1{(1-Fraction_{enhanced})+\frac{Fraction_{enhanced}}{Speedup_{enhanced}}}$
- 推论:如果只改善任务的一小部分,那么对整个任务的提升至多不超过(1 - 该部分在整个任务的占比)的倒数
二、计算机的类型
- PMD:Personal Mobile Device
- Desktop
- Server
- Cluster(集群)/ WSC(仓储式计算机)
- Embedded(嵌入式)/ IoT Computer(物联网计算机)
三、并行 Parallelism
1. 应用并行和硬件并行
- Application Parallelism
- DLP(Data-Level Parallelism,数据级并行)
- 对于同一项任务,同时处理多个数据(例如:排序、矩阵乘法的并行算法)
- TLP(Task-Level Parallelism,任务级并行)
- 使用同一组数据,同时处理多项任务(例如:将一组数据输入两个处理器,处理器 A 执行排序,处理器 B 执行求和运算)
- Hardware Parallelism
- ILP(Instruction-Level Parallelism,指令级并行)
- Pipelining 技术:将一条指令分为多步,以使处理器能同时执行多条指令
- 推测执行:通过预加载任务,避免执行时产生延迟(例如:分支预测)
- Vector Architectures, GPU and Multimedia Instruction Sets
- 利用数据级并行
- 并行地将一个指令应用到一个数据集(例如: GPU 重复矩阵运算)
- TLP(Thread-Level Parallelism,线程级并行)
- 应用于允许并行线程之间交互的紧密耦合硬件模型中(例如多核处理器)
- RLP(Request-Level Parallelism,请求级并行)
- 利用编程人员或操作系统指定的大部分解耦任务之间的并行
2. 并行的 Flynn 分类
Flynn(人名)按照指令流、数据流的数目,将并行分为四类(Single/Multiple Instruction/Data stream):
- SISD(单指令流,单数据流)
- 单处理器(uniprocessor)
- 利用指令级并行
- SIMD(单指令流,多数据流)
- 多个处理器使用不同的数据流执行相同的指令
- 每个处理器都有数据存储器,但只有一个指令存储器和控制处理器
- 利用指令级、数据级并行
- MISD(多指令流,单数据流)