Files
final-exam/计算机系统结构/重点复习/小题10-并行计算机系统结构分类.md
T

151 lines
5.8 KiB
Markdown
Raw 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.
---
tags:
- 计算机系统结构
- 重点复习
- 并行处理
- 多处理机
create time: 2026-06-16 21:21
---
# 小题 10 — 并行计算机系统结构的分类
## 概述
本题考查并行计算机系统结构的两大类型:**集中式共享存储结构**(Centralized Shared-Memory)和**分布式存储器多处理机**(Distributed-Memory Multiprocessor)的特点、区别及代表架构。
> [!tip] 考试重点
> 重点掌握两种架构的**存储访问方式**、**可扩展性**和**典型代表**。SMP vs NUMA vs MPP vs Cluster 的对比是高频考点。
## 正文
### 一、并行计算机系统的基本分类
按照**存储器的组织方式**和**处理器间的通信方式**,并行计算机系统可分为两大类:
```mermaid
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 |
| 缓存一致性 | 硬件自动维护,程序员无感 |
```mermaid
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)或增强型监听协议 |
| 拓扑结构 | 每个处理器有**本地内存**,通过互连网络连接 |
```mermaid
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 |
| 网络延迟 | 低(总线/交叉开关) | 高(需经过多级互连) |
| 硬件成本 | 低~中 | 高(需高速互连网络) |
| 适用场景 | 通用服务器、小型数据中心 | 超算、大规模数据分析 |
### 五、设计权衡
```mermaid
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(共享内存),节点间是消息传递(分布式)。这样既利用了共享内存的编程便利性,又利用了分布式架构的可扩展性。
## 关联笔记
- [[计算机系统结构/复习文档/多处理器与并行处理]]
- [[小题1-冯氏分类法与并行度]]
- [[总线与IO系统]]