什么是并行计算?

2025年3月17日 | 阅读 8 分钟
What is Parallel Computing?

并行计算是指同时执行多个处理器来完成应用程序或计算的过程。通常,它是一种计算架构,其中大问题被分解为独立的、较小的、通常相似的部分,可以一次性处理。它通过多个 CPU 通过共享内存进行通信来完成,并在完成后合并结果。它有助于执行大型计算,因为它将大问题分配给多个处理器。

并行计算还通过增加系统的可用计算能力,帮助加快应用程序处理和任务解决。大多数超级计算机都采用并行计算原理进行操作。在需要大量处理能力或计算的操作场景中,通常会使用并行处理。

通常,这种基础设施安装在服务器机架中,其中安装了各种处理器;应用服务器将计算请求分配成小块,然后这些请求在每个服务器上同时处理。最早的计算机软件是为串行计算编写的,因为它们一次只能执行一条指令,但并行计算则不同,它一次执行多个处理器来完成应用程序或计算。

使用并行计算的原因有很多,例如节省时间和金钱、提供并发性、解决更大的问题等。此外,并行计算还降低了复杂性。在并行计算的真实示例中,有两条排队购买任何东西的队列;如果两位收银员同时为两个人提供门票,这有助于节省时间并降低复杂性。

并行计算的类型

从开源和专有的并行计算供应商来看,通常有三种类型的并行计算可用,如下所述:

  1. 位级并行:一种并行计算形式,其中每个任务都依赖于处理器字长。在对大数据执行任务时,它减少了处理器必须执行的指令数量。需要将操作分解为一系列指令。例如,有一个 8 位处理器,您想对 16 位数字进行操作。首先,它必须操作 8 个低阶位,然后是 8 个高阶位。因此,需要两条指令来执行操作。16 位处理器可以用一条指令执行该操作。
  2. 指令级并行:在单个 CPU 时钟周期内,处理器在指令级并行中决定同时执行多少条指令。对于每个时钟周期阶段,指令级并行中的处理器可能具有低于一条指令的处理能力。指令级并行中的软件方法作用于静态并行,其中计算机决定同时执行哪些指令。
  3. 任务并行:任务并行是一种并行形式,其中任务被分解为子任务。然后,每个子任务都被分配执行。并且,子任务的执行由处理器并发执行。

并行计算的应用

并行计算有多种应用,如下所示:

  • 并行计算的主要应用之一是数据库和数据挖掘。
  • 系统的实时仿真是并行计算的另一个用途。
  • 网络视频和多媒体等技术。
  • 科学与工程。
  • 协作工作环境。
  • 增强现实、高级图形和虚拟现实都使用了并行计算的概念。

并行计算的优势

并行计算的优势如下:

  • 在并行计算中,使用更多资源来完成任务,从而减少时间和可能的成本。此外,使用廉价组件来构建并行集群。
  • 与串行计算相比,并行计算可以在短时间内解决更大的问题。
  • 对于模拟、建模和理解复杂的现实世界现象,并行计算比串行计算更合适。
  • 当本地资源有限时,它可以在非本地资源上为您提供优势。
  • 有许多问题非常大,可能不切实际或不可能在单台计算机上解决;并行计算的概念有助于消除这类问题。
  • 并行计算最大的优势之一是它允许您通过使用多个计算资源同时完成多项任务。
  • 此外,并行计算适用于硬件,因为串行计算浪费了潜在的计算能力。

并行计算的缺点

并行计算有许多局限性,如下所示:

  • 它所涉及的并行架构可能难以实现。
  • 对于集群而言,并行计算需要更好的散热技术。
  • 它需要可以在并行机制中处理的托管算法。
  • 多核架构功耗高。
  • 并行计算系统需要低耦合和高内聚,这很难创建。
  • 基于并行性的程序代码只能由技术最熟练和经验丰富的程序员完成。

  • 尽管并行计算通过使用多个处理器帮助您解决计算密集型和数据密集型问题,但有时它会影响系统的结合和我们的一些控制算法,并且由于并行选项而无法提供良好的结果。
  • 由于同步、线程创建、数据传输等原因,额外的成本有时会相当大;甚至可能超过并行化带来的收益。
  • 此外,为了提高性能,并行计算系统需要针对不同的目标架构进行不同的代码调整。

并行计算机架构基础

并行计算机架构根据硬件支持并行性的级别进行分类。并行计算机架构有不同的类别,如下所示:

多核计算

包含两个或更多独立处理核心的计算机处理器集成电路称为多核处理器,它能够同时执行程序指令。核心可以实现 VLIW、超标量、多线程或向量等架构,并集成在单个集成电路芯片上或单个芯片封装中的多个芯片上。多核架构分为异构(由不相同的核心组成)或同构(仅由相同的核心组成)。

对称多处理

在对称多处理中,单个操作系统处理具有两个或更多同构、独立处理器的多处理器计算机架构,这些处理器都受到同等对待。每个处理器都可以处理任何任务,而无需担心该任务的数据是否在内存中可用,并且可以通过使用片上网格网络连接。此外,所有处理器都包含私有缓存内存。

分布式计算

分布式系统的组件位于不同的联网计算机上。这些联网计算机通过 HTTP、类似 RPC 的消息队列和连接器进行通信,协调其操作。组件的并发性和组件的独立故障是分布式系统的特点。通常,分布式编程以点对点、客户端-服务器、n 层或三层架构的形式进行分类。有时,并行计算和分布式计算这两个术语可以互换使用,因为两者之间存在很多重叠。

大规模并行计算

在这种情况下,同时使用多台计算机并行执行一组指令。网格计算是另一种方法,其中众多分布式计算机系统同时执行并通过互联网通信以解决特定问题。

为什么需要并行计算?

我们需要并行计算的原因有很多,如下所述:

  • 并行计算处理更大的问题。在现实世界中,有许多事情同时在不同地方运行,这很难管理。在这种情况下,并行计算有助于管理这种极其庞大的数据。
  • 并行计算是使数据更具建模性、动态仿真并实现相同目标的关键。因此,现实世界也需要并行计算。
  • 借助串行计算,并行计算不适合实现实时系统;此外,它还提供并发性并节省时间和金钱。
  • 只有并行计算的概念才能组织大型数据集、复杂的数据及其管理。

  • 并行计算方法确保有效利用资源并保证硬件的有效使用,而串行计算只使用部分硬件,部分硬件处于空闲状态。

并行计算的未来

从串行计算到并行计算,计算图已经完全改变。英特尔等科技巨头已经开始在系统中集成多核处理器,这是迈向并行计算的一大步。为了更美好的未来,并行计算将给计算机的工作方式带来一场革命。并行计算在将世界彼此连接方面发挥着比以往任何时候都更重要的作用。此外,随着多处理器计算机、更快的网络和分布式系统的出现,并行计算方法变得更加必要。

串行计算与并行计算的区别

串行计算是指使用单个处理器执行程序,也称为顺序计算,其中程序被分解为一系列指令,并且每条指令逐一处理。传统上,软件提供了更简单的方法,因为它已经按顺序编程,但处理器的速度显著限制了它执行每条指令系列的能力。此外,单处理器机器使用顺序数据结构,其中数据结构对于并行计算环境是并发的。

与并行计算中的基准测试相比,在顺序编程中,衡量性能的重要性远低于复杂性,因为它涉及识别系统中的瓶颈。借助基准测试和性能回归测试框架,可以在并行计算中实现基准测试。这些测试框架包括多种测量方法,如多次重复和统计处理。通过在内存层次结构中移动数据,避免这种瓶颈的能力在并行计算中尤其明显。并行计算成本更高,可能更复杂。然而,并行计算处理更大的问题并有助于更快地解决问题。

并行计算的历史

在 20 世纪 60 年代和 70 年代,随着超级计算机的发展,对并行计算的兴趣可以追溯到 20 世纪 50 年代末。1958 年 4 月,Stanley Gill(Ferranti)讨论了分支和等待的必要性以及并行编程。同样在 1958 年,IBM 研究员 Daniel Slotnick 和 John Cocke 讨论了在数值计算中首次使用并行性。

1962 年,Burroughs 公司发布了一台四处理器计算机 D825。1967 年,美国信息处理学会联合会举行了一次会议,其中 Amdahl 和 Slotnick 发表了一场关于并行处理可行性的辩论。Honeywell 的第一个 Multics 系统,非对称多处理器系统,于 1969 年推出,它能够并行运行多达八个处理器。

在 20 世纪 70 年代,卡内基梅隆大学的多处理器项目 C.mmp 是最早拥有多个处理器的多处理器之一。在这个项目期间,针对 64 个 Intel 8086/8087 处理器为科学应用推出了一台超级计算机,并启动了一种新型的并行计算。1984 年,带有窥探缓存的 Synapse N+1 是第一个总线连接的多处理器。Slotnick 在 1964 年为劳伦斯利弗莫尔国家实验室提出了构建大型并行计算机的建议。ILLIAC IV 是最早的 SIMD 并行计算尝试,由美国空军设计。


下一主题什么是晶体管