Files
2026-05-16 17:16:51 +08:00

298 lines
8.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第五章 线程级并行 - 考试考点精细化梳理
---
## 考点分级
### 【必考核心考点】
#### 1. Amdahl定律在多处理机中的应用计算题必考
**核心考法**:计算题(★★★★★)
**标准公式**
```
加速比 = 1 / [S + (1-S)/N]
其中:
- S串行部分比例
- N处理器数量
- (1-S):可并行部分比例
```
**逆运算类型**
- 已知加速比和N求S
- 已知加速比和S求N
**典型例题**
> 假设想用100个处理器达到80的加速比求原计算程序中串行部分最多可占多大的比例
**解题步骤**
```
根据Amdahl定律
80 = 1 / [S + (1-S)/100]
80 = 1 / (S + 0.01 - 0.01S)
80 = 1 / (0.01 + 0.99S)
80(0.01 + 0.99S) = 1
0.8 + 79.2S = 1
79.2S = 0.2
S = 0.2/79.2 ≈ 0.0025
串行部分最多占0.25%即并行比例约99.75%
```
**常见陷阱**
- 混淆"S"(串行比例)和"(1-S)"(并行比例)
- 计算时忘记括号优先级
**易错易混点**
- 当N很大时加速比趋向于 1/S
- 即使用100个处理器要达到80加速比也需要99.75%并行
**答题模板**
```
根据Amdahl定律
加速比 = 1 / [S + (1-S)/N]
代入已知条件:加速比=__N=__
列方程__ = 1 / [S + (1-S)/__]
求解S ≈ ___
并行比例 = 1 - S ≈ ___
串行部分最多占___%。
```
**踩分细则**
- 正确写出Amdahl公式1分
- 代入正确参数2分
- 解方程过程正确4分
- 最终答案正确1分
---
#### 2. 多处理机分类(选择题/填空题高频)
**核心考法**:选择题、填空题、简答题(★★★★★)
**五种分类**
| 分类 | 全称 | 特点 | 代表 |
|------|------|------|------|
| PVP | 并行向量处理机 | 专用向量处理器 | Cray |
| SMP | 对称多处理机 | 共享内存,均匀访问 | 多核服务器 |
| MPP | 大规模并行处理机 | 分布式内存,不共享 | 超算 |
| DSM | 分布式共享内存 | 物理分布,逻辑共享 | NUMA |
| COW | 工作站集群 | 商用互连,商品组件 | Beowulf |
**考试重点**
- 给定描述能识别属于哪类多处理机
- 理解SMP和DSM的区别内存访问是否均匀
- 理解PVP、MPP、SMP的主要区别
**常见陷阱**
- 混淆SMP和DSM都是共享内存但访问延迟不同
- 混淆MPP和COW
**答题话术**
```
多处理机按硬件和互连结构分为五类:
1. PVP并行向量处理机配备专用向量处理器通过 Crossbar 连接
2. SMP对称多处理机多个相同处理器通过高速总线或交叉开关连接共享内存内存访问均匀UMA
3. MPP大规模并行处理机数百至上万个处理器分布式内存不共享通过专用互连网络连接
4. DSM分布式共享内存物理上分布内存逻辑上共享内存访问不均匀NUMA
5. COW工作站集群用商品工作站和商用网络构建编程模型是消息传递
关键区别:
- 内存访问SMP是UMADSM是NUMA
- 内存物理分布MPP是完全分布式DSM是共享但分布式
```
---
#### 3. Cache一致性协议选择题/分析题必考)
**核心考法**:选择题、填空题、分析题(★★★★★)
**两种协议类型**
| 协议 | 原理 | 优点 | 缺点 |
|------|------|------|------|
| 监听协议Snooping | 总线监听所有Cache请求 | 实现简单,延迟低 | 总线带宽瓶颈 |
| 目录协议Directory | 集中式目录跟踪共享状态 | 可扩展性好 | 延迟高,需要额外内存 |
**写策略对比**
| 策略 | 原理 | 数据传输量 |
|------|------|------------|
| 写作废Write Invalidate | 写时使其他Cache副本无效 | 只需发无效信号 |
| 写更新Write Update | 写时更新其他Cache副本 | 需传输数据 |
**一致性状态机MSI/MESI/MOESI**
| 状态 | 含义 | 转换条件 |
|------|------|----------|
| MModified | 已修改,独家 | 写操作时 |
| SShared | 干净,共享 | 读操作时 |
| EExclusive | 干净,独家 | 独占读时 |
| IInvalid | 无效 | 收到无效请求时 |
| OOwned | 脏,共享 | 写操作时 |
**考试重点**
- 理解监听协议和目录协议的工作原理
- 能画出状态转换图
- 理解写作废和写更新的区别
**常见陷阱**
- 混淆"写更新"和"写作废"
- 不理解O状态和M状态的区别
**答题话术**
```
Cache一致性协议确保多个处理器Cache中的数据保持一致
监听协议:
- 每个Cache监听总线上的所有请求
- 当检测到其他处理器写操作时,自身副本失效或更新
- 优点:延迟低,实现简单
- 缺点:总线带宽受限,不适合大规模系统
目录协议:
- 维护一个集中式目录,记录每个内存块的共享状态
- 处理器需先查询目录,再进行数据访问
- 优点:可扩展性好,适合大规模系统
- 缺点:延迟高,需要额外内存开销
写策略:
- 写作废写时使其他Cache副本失效节省带宽
- 写更新写时更新其他Cache副本保证数据新鲜
```
---
### 【高频考点】
#### 4. CPI与远程访问影响计算题高频
**核心考法**:计算题(★★★★☆)
**公式**
```
实际CPI = 基本CPI + 远程访问率 × 远程访问开销
远程访问开销 = 远程访问时间 / 时钟周期时间
```
**典型例题**
> 32台处理器远程访问时间200ns时钟频率2GHz基本CPI=0.50.2%指令需远程访问。求速度比。
**解题步骤**
```
解:
1. 计算时钟周期时间1/2GHz = 0.5ns
2. 计算远程访问开销200ns / 0.5ns = 400周期
3. 计算实际CPI0.5 + 0.2% × 400 = 0.5 + 0.8 = 1.3
4. 计算速度比1.3 / 0.5 = 2.6
前者比后者快2.6倍。
```
**常见陷阱**
- 混淆"远程访问率"和"本地访问率"
- 单位不统一ns vs ps vs 周期)
---
#### 5. 同步机制
**核心考法**:选择题、简答题(★★★★☆)
**基本同步原语**
- 原子读-改-写操作Atomic Read-Modify-Write
- 忙等Busy Waitvs 阻塞等待
**同步实现机制**
- 自旋锁Spin Lock
- 屏障Barrier
**常见考题**
- 解释同步的重要性
- 分析忙等 vs 阻塞的适用场景
---
### 【了解考点】
#### 6. 目录协议的三种结构
**考法**:选择题、填空题
| 结构 | 特点 |
|------|------|
| 全集中式目录 | 单节点维护所有目录,开销大 |
| 分布式目录 | 目录分布在各节点,开销小 |
| 链式目录 | 指针链方式跟踪共享,内存开销小 |
---
## 本章核心公式速记
```
1. Amdahl定律加速比 = 1 / [S + (1-S)/N]
2. 远程访问开销 = 远程访问时间 / 时钟周期时间
3. 实际CPI = 基本CPI + 远程访问率 × 远程访问开销
4. CPI = 1 / (S + (1-S)/N) (另一种形式)
5. 多处理机分类PVP/SMP/MPP/DSM/COW
6. Cache一致性监听协议 vs 目录协议,写作废 vs 写更新
7. MESI状态Modified/Shared/Exclusive/Invalid
8. MOESI增加Owned状态
```
---
## 典型计算题解题示范
**例题1**
> 假设想用100个处理器达到80的加速比求原计算程序中串行部分最多可占多大的比例
**标准答案**
```
根据Amdahl定律
加速比 = 1 / [S + (1-S)/N]
80 = 1 / [S + (1-S)/100]
80(S + 0.01 - 0.01S) = 1
80(0.01 + 0.99S) = 1
0.8 + 79.2S = 1
S = 0.2/79.2 ≈ 0.0025
串行部分最多占0.25%即并行比例约99.75%。
```
**例题2**
> 32台处理器远程访问200ns时钟频率2GHz基本CPI=0.50.2%指令远程访问。求速度比。
**标准答案**
```
解:
时钟周期 = 1/2GHz = 0.5ns
远程访问开销 = 200ns / 0.5ns = 400周期
实际CPI = 0.5 + 0.2% × 400 = 1.3
速度比 = 1.3 / 0.5 = 2.6
没有远程访问时机器速度是有0.2%远程访问的机器的2.6倍。
```
---
## 常见易错易混点总结
| 易错点 | 正确理解 |
|--------|----------|
| SMP vs DSM | SMP是UMADSM是NUMA访问延迟不同 |
| 监听 vs 目录 | 监听适合小规模,目录适合大规模 |
| 写作废 vs 写更新 | 写作废只发信号,写更新传数据 |
| MESI vs MOESI | MOESI多Owned状态可读脏数据 |
| 并行比例99.75% | 极其难达到,说明高加速比需要极高并行度 |