资讯

并行计算是什么?把大任务拆开同时算

2026-11-053 分钟阅读百科
TL;DR并行计算(Parallel Computing)是把一个大的计算任务分解成多个部分,由多个处理器、核心或计算机同时执行以缩短计算时间的方式,形式包括数据并行和任务并行,受阿姆达尔定律限制,是 GPU、超级计算机和大模型训练的基础。

并行计算(Parallel Computing)是指同时使用多个计算资源来解决一个计算问题的方式。它把一个大的任务分解成许多可以同时进行的小任务,分配给多个处理器、多个处理器核心或多台计算机同时执行,从而大大缩短完成整个任务所需的时间。

从串行到并行

传统的计算方式是串行的:一个处理器按照顺序,一条指令接一条指令地执行。就像只有一个收银台的超市,顾客只能排成一队,一个接一个地结账。并行计算就像同时开放多个收银台,多位顾客可以同时结账,总的时间大大缩短。

在很长一段时间里,处理器的速度靠不断提高时钟频率来提升。但到了 21 世纪初,由于功耗和发热的限制,单个处理器核心的频率很难再大幅提高。于是芯片厂商转而在一块芯片上放置多个核心,多核处理器成为主流。这意味着要让软件跑得更快,就必须让它能够并行地运行。

并行的方式

数据并行:把大量的数据分成很多份,每个处理单元对其中一份数据执行相同的操作。比如处理一张大图片时,把图片分成若干块,每个核心处理一块。GPU 就特别擅长这种并行,它有成千上万个核心,同时对大量数据进行相同的运算。任务并行:把一个工作分解成多个不同的子任务,由不同的处理单元同时执行。比如在一个网页服务器中,同时处理多个用户的请求。

从硬件的组织方式来看,有共享内存的并行,多个处理器核心共享同一块内存,通过读写共享的数据来协作,常用 OpenMP 等工具;以及分布式内存的并行,多台计算机各有自己的内存,通过网络传递消息来协作,常用 MPI(消息传递接口)。

并行的限制:阿姆达尔定律

并行计算并不能无限地加快速度。1967 年,计算机科学家吉恩·阿姆达尔提出了一个定律:一个程序的加速程度,受限于其中必须串行执行、无法并行化的那部分。比如一个程序有 10% 的部分只能串行执行,那么无论使用多少个处理器,最多也只能把速度提高到原来的 10 倍。此外,并行计算还要面对很多挑战:任务之间需要通信和同步,这会带来额外的开销;多个任务同时读写同一份数据时可能发生冲突;任务分配不均匀时,有的处理器忙碌、有的空闲;并行程序也更难编写和调试。

在 AI 中的作用

并行计算是现代人工智能的基础。神经网络的训练涉及海量的矩阵运算,非常适合在 GPU 上并行地进行。训练大模型则需要成千上万块 GPU 同时工作,常用的并行策略有:数据并行,每块 GPU 持有一份完整的模型,各自处理不同的数据,再同步梯度;张量并行,把模型中单个层的巨大矩阵切分到多块 GPU 上;流水线并行,把模型的不同层放在不同的 GPU 上,像流水线一样依次处理;以及在混合专家模型中,把不同的专家放在不同的 GPU 上的专家并行。实际的大模型训练通常会把这几种并行方式组合起来使用。