多处理机与分布式系统

一、核心问题与第一性原理

所有多处理机与分布式系统的设计,都在反复回答同一组根本问题:

1. 三大不可回避的基本矛盾

维度根本问题本质冲突
一致性多个执行单元如何看到同一个世界正确性 vs 并行性
性能并行是否真的带来加速计算加速 vs 协调开销
可扩展性系统规模扩大时复杂度如何增长局部优化 vs 全局复杂性

核心结论:所有体系结构差异,都是在这三者之间选择不同的平衡点。


二、并行系统的四条设计轴(统一抽象模型)

所有并行/分布式系统都可以映射到以下四个抽象维度:

  1. **地址空间模型**:统一地址空间 vs 分离地址空间
  2. **通信方式**:共享内存 vs 消息传递
  3. **一致性实现者**:硬件 / 操作系统 / 程序员
  4. **延迟假设**:低且稳定 vs 高且不确定

这四条轴构成了理解 UMA、NUMA、多核、DSM、多计算机的统一坐标系。


三、多处理机:共享内存假设下的扩展

3.1 多处理机的定义(抽象层)

多处理机系统

编程模型假设:内存是“共同可见”的。


3.2 UMA:统一存储访问的理想模型

本质特征

架构演进逻辑

  1. 总线型 UMA:

    • 优点:简单、直观
    • 本质瓶颈:**共享总线 = 全局串行点**
  2. 交叉开关:

    • 用硬件并行换性能
    • 代价:复杂度 O(n²)
  3. 多级交换网络:

    • 以层次化降低硬件复杂度
    • 代价转移为路径竞争与延迟

本质规律:UMA 的扩展极限由“全局共享”本身决定。


3.3 NUMA:对物理现实的妥协

为什么 NUMA 必然出现?

NUMA 的核心思想

编程与系统代价

NUMA 是共享内存模型的最后一次扩展


3.4 多核、众核与异构:片上并行的极端化

多核(CMP)

众核(如 GPU)

异构多核


四、多处理机操作系统的组织哲学

4.1 OS 组织的根本问题

多个 CPU 如何安全、高效地共享一个操作系统?


4.2 三种典型范式

1. 每 CPU 一份 OS

2. 主从模型

3. 对称多处理(SMP)

SMP 的核心挑战:操作系统本身成为并发程序。


五、同步:限制并发不确定性的机制

5.1 同步的第一性原理

同步不是为了性能,而是为了限制状态不确定性的传播


5.2 自旋、阻塞与现实折中


六、调度:时间维度上的资源分配

6.1 调度的抽象目标

调度本质是:在时间轴上安排并行实体的相遇与错开


6.2 多处理机调度策略


七、范式断裂:从多处理机到多计算机

7.1 根本性变化

维度多处理机多计算机
地址空间共享分离
通信内存读写消息
延迟低且稳定高且不确定
失败异常常态

分布式系统不是“放大的多处理机”


八、通信:显式面对分离现实

8.1 网络接口的本质角色


8.2 零拷贝与 RDMA


九、通信抽象:RPC 与 DSM

9.1 RPC

9.2 DSM

DSM 的价值在于教学与思想实验,而非主流工程实践。


十、分布式调度与负载均衡

10.1 调度的根本问题

工作应该在哪里运行?

10.2 典型思想


十一、总结:长期稳定的认知结论

  1. 并行系统的复杂性主要来自一致性管理

  2. 扩展性问题无法被“更聪明的硬件”彻底解决

  3. 架构演进本质是:

    • 从隐式共享 → 显式通信
    • 从硬件保证 → 软件承担
  4. 优秀系统的标志:

    • 清晰暴露代价
    • 明确失败边界
    • 允许局部最优而非全局幻想

最终认知:并行与分布式系统设计,是一门关于“承认现实约束”的工程哲学。


关联内容