易君召
发布于 2026-08-21 / 作者:易君召 / 2 阅读
0

分布式结构 vs 并行计算 核心区别

一句话总结:分布式是架构 / 部署模式,并行是计算执行模式;分布式可以做并行,并行不一定需要分布式

1. 概念定义

并行计算(Parallel Computing)

同一台机器内部,把一个大任务拆成多个子任务,同时执行,共用内存

  • 硬件:单台计算机,多核 CPU、多 CPU,共享内存

  • 特征:多个进程 / 线程同时跑,内存互通,CPU 之间通信极快

  • 目标:缩短单任务计算时间,把大计算拆开同时算

  • 例子:OpenMP 多线程、CPU 多核同时运算、GPU 多流计算

并行重点:计算怎么跑(执行方式)

分布式结构(Distributed Architecture)

多台独立计算机(节点)通过网络组成集群,节点各自拥有独立内存,通过网络通信协同工作

  • 硬件:多台物理机器,各有自己 CPU、内存、磁盘,靠网络交互

  • 特征:节点内存不共享,数据、消息靠网络传输,通信开销大

  • 目标:扩容算力、存储,容错高,突破单机上限

  • 例子:Hadoop、Spark 集群、微服务集群、K8s 集群

分布式重点:系统怎么组织(架构部署)

2. 关键维度对比表

对比项

并行计算

分布式结构

硬件载体

单机内部,多核 / 多处理器

多台独立机器,集群网络互连

内存模型

共享内存,线程直接访问同一块内存

分布式内存,各节点内存隔离,网络传数据

通信方式

CPU 内部总线,速度极快

网络 TCP,延迟高、带宽有限

故障影响

一个线程崩,容易整个程序挂

单个节点故障,其余节点可继续工作,容错强

数据交换开销

很小

网络开销大,是主要瓶颈

是否跨机器

一般不跨机器

天然跨机器

3. 四种组合关系(非常重要)

  1. 单机并行(非分布式) 一台机器多核,多线程同时计算,没有多节点,只有并行,没有分布式。

例:本地 Python 多进程做数值计算

  1. 分布式 + 并行(最常见大数据场景) 多台机器,每台机器内部又做多核并行,节点之间网络交互。

例:Spark:集群多节点是分布式;每个 Executor 内部多线程是并行计算。

  1. 分布式但不并行 多台机器分工,任务串行流转,没有同时计算。

例:简单链式微服务 A→B→C,依次调用,没有同时算,只是部署在多台机器。

  1. 并行但非分布式:单机多核并发运算,上面已经举例。

4. 通俗比喻

  • 并行计算:一个大工程,同一间办公室里很多工人一起干活,大家共用一张大办公桌(共享内存),互相传递东西伸手就到。

  • 分布式结构多个独立办公室,每个办公室有自己的桌子,办公室之间靠打电话传消息(网络)。每个办公室内部,工人也可以多人同时干活(内部并行)。

5. 容易混淆的点

  1. 分布式不等于并行:分布式只是把系统拆到多机,任务不一定同时跑;

  2. 并行不等于分布式:并行只关心同时计算,可以完全跑在一台机器;

  3. 大数据框架(Spark/Flink):底层是分布式架构,利用并行计算提升单节点算力

补充拓展

  • 并行计算常见两类模型:共享内存模型 (OpenMP)、消息传递模型 (MPI,MPI 既可以单机并行,也可以跨机器变成分布式并行)

  • 分布式天然面对:网络延迟、数据一致性、节点故障;并行主要面对:锁竞争、内存冲突。


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/distributed-vs-parallel-computing-core-differences

欢迎访问 小易撩挨踢