5.8 KiB
5.8 KiB
tags, create time
| tags | create time | ||||
|---|---|---|---|---|---|
|
2026-06-16 21:21 |
小题 10 — 并行计算机系统结构的分类
概述
本题考查并行计算机系统结构的两大类型:集中式共享存储结构(Centralized Shared-Memory)和分布式存储器多处理机(Distributed-Memory Multiprocessor)的特点、区别及代表架构。
[!tip] 考试重点 重点掌握两种架构的存储访问方式、可扩展性和典型代表。SMP vs NUMA vs MPP vs Cluster 的对比是高频考点。
正文
一、并行计算机系统的基本分类
按照存储器的组织方式和处理器间的通信方式,并行计算机系统可分为两大类:
graph TD
ROOT["Parallel Computer Systems"] --> CS["Centralized Shared Memory"]
ROOT --> DD["Distributed Memory"]
CS --> SMP["SMP: Symmetric Multiprocessor"]
CS --> NUMA["NUMA: Non-Uniform Memory Access"]
DD --> MPP["MPP: Massively Parallel Processor"]
DD --> Cluster["Cluster / MPP"]
二、集中式共享存储结构
核心特征:所有处理器共享一个统一的物理内存,通过系统总线或交叉开关连接。
2.1 SMP(对称多处理器)
| 特征 | 说明 |
|---|---|
| 存储视图 | 所有处理器看到统一的地址空间,访问任何内存单元的延迟相同 |
| 通信方式 | 通过 Load/Store 指令直接读写共享变量 |
| 处理器数量 | 通常 2~8 个(受总线带宽限制) |
| 一致性维护 | 监听协议(Snooping Protocol),如 MSI、MESI |
| 缓存一致性 | 硬件自动维护,程序员无感 |
graph TD
P1["CPU 1 + Cache"] --> BUS["System Bus"]
P2["CPU 2 + Cache"] --> BUS
P3["CPU 3 + Cache"] --> BUS
P4["CPU 4 + Cache"] --> BUS
BUS --> MEM["Shared Memory"]
2.2 NUMA(非统一内存访问)
| 特征 | 说明 |
|---|---|
| 存储视图 | 统一地址空间,但本地内存访问快,远程内存访问慢 |
| 通信方式 | 同样通过 Load/Store,但远程访问延迟更高 |
| 处理器数量 | 可扩展到 数十个 |
| 一致性维护 | 目录协议(Directory Protocol)或增强型监听协议 |
| 拓扑结构 | 每个处理器有本地内存,通过互连网络连接 |
graph LR
subgraph Node1["Node 1"]
CPU1["CPU"] --- LM1["Local Memory"]
end
subgraph Node2["Node 2"]
CPU2["CPU"] --- LM2["Local Memory"]
end
subgraph Node3["Node 3"]
CPU3["CPU"] --- LM3["Local Memory"]
end
Node1 <-->|"Interconnect"| Node2
Node2 <-->|"Interconnect"| Node3
[!question] SMP 和 NUMA 都是共享内存,区别是什么? SMP 中所有内存的访问延迟完全相同(Uniform),适合小规模系统。NUMA 中本地内存访问快、远程访问慢(Non-Uniform),适合更大规模系统。NUMA 是 SMP 的扩展——当处理器数量增加到总线无法承载时,就需要将内存分布到各处理器附近。
三、分布式存储器多处理机
核心特征:每个处理器有独立的本地内存,处理器之间通过消息传递(Message Passing)通信。
3.1 MPP(大规模并行处理器)
| 特征 | 说明 |
|---|---|
| 存储视图 | 每个节点有独立的地址空间 |
| 通信方式 | 通过 MPI 等消息传递库发送/接收数据 |
| 处理器数量 | 数千到数万 |
| 一致性维护 | 无需——程序员显式管理数据分布和一致性 |
| 典型代表 | 超级计算机(如 Summit、Fugaku) |
3.2 Cluster(集群)
| 特征 | 说明 |
|---|---|
| 存储视图 | 每个节点是独立的计算机,有独立的 OS |
| 通信方式 | 通过高速网络(如 InfiniBand)和消息传递 |
| 处理器数量 | 数千到数万 |
| 一致性维护 | 无需——完全由程序员管理 |
| 典型代表 | Google 集群、HPC 集群 |
四、两种架构的全面对比
[!abstract]- 答案
对比维度 集中式共享存储 分布式存储器多处理机 存储视图 统一地址空间 独立地址空间 通信方式 Load/Store(隐式) 消息传递 MPI(显式) 一致性 硬件维护(监听/目录协议) 程序员管理 可扩展性 差(< 64 处理器) 好(数千处理器) 编程难度 低(共享变量编程) 高(需显式通信) 典型规模 2~64 处理器 数百~数万处理器 代表架构 SMP、NUMA MPP、Cluster
| 对比维度 | 集中式共享存储 | 分布式存储器多处理机 |
|---|---|---|
| 数据访问 | 透明——直接访问内存地址 | 非透明——需 Send/Receive |
| 网络延迟 | 低(总线/交叉开关) | 高(需经过多级互连) |
| 硬件成本 | 低~中 | 高(需高速互连网络) |
| 适用场景 | 通用服务器、小型数据中心 | 超算、大规模数据分析 |
五、设计权衡
graph TD
SCALABILITY["Scalability"] -->|"SMP/NUMA"| SHARED["Shared Memory: Easy to Program"]
SCALABILITY -->|"MPP/Cluster"| DISTRIBUTED["Distributed: Scales Better"]
SHARED --> SHARED_COST["Cost: Cache Coherence Hardware"]
DISTRIBUTED --> DIST_COST["Cost: Programmer Effort"]
[!question] 未来的趋势是什么? 现代超算普遍采用混合架构:节点内是 NUMA(共享内存),节点间是消息传递(分布式)。这样既利用了共享内存的编程便利性,又利用了分布式架构的可扩展性。