📜  并行计算导论

📅  最后修改于: 2021-06-28 09:09:31             🧑  作者: Mango

在介绍并行计算之前,首先让我们看一下计算机软件的计算背景以及为什么它在现代时代失败了。

传统上,计算机软件是为串行计算编写的。这意味着要解决问题,算法会将问题分为较小的指令。这些离散的指令然后在计算机的中央处理单元上一一执行。仅当一条指令完成后,下一条指令才开始。

现实生活中的例子是排队等候电影票的人,只有收银员。当有2个队列且只有一个收银员时,这种情况的复杂性会增加。

因此,简而言之,串行计算如下:

  1. 在这种情况下,问题陈述被分解为离散的指令。
  2. 然后,指令将一一执行。
  3. 在任何时候都只执行一条指令。

看一下第3点。由于在任何时刻都只执行一条指令,这在计算机行业引起了巨大的问题。这将浪费大量的硬件资源,因为只有一部分硬件会在特定的指令和时间上运行。随着问题陈述变得越来越繁重,执行这些陈述所花费的时间也越来越多。奔腾3和奔腾4是处理器的示例。

现在让我们回到现实生活中的问题。我们可以肯定地说,当同时有2个队列和2个收银员同时向2个人提供票证时,复杂性将会降低。这是并行计算的一个示例。

并行计算–
它是同时使用多个处理元素来解决任何问题的方法。问题被分解为指令,并同时解决每个已应用到工作中的资源。

并行计算相对于串行计算的优势如下:

  1. 它节省了时间和金钱,因为许多资源一起工作将减少时间并降低潜在成本。
  2. 解决串行计算上的较大问题可能是不切实际的。
  3. 当本地资源有限时,它可以利用非本地资源。
  4. 串行计算“浪费”了潜在的计算能力,因此并行计算可以更好地利用硬件。

并行性的类型:

  1. 位级并行性:这是并行计算的形式,它基于不断增加的处理器大小。它减少了系统必须执行的指令数量,才能对大型数据执行任务。
    示例:考虑一个8位处理器必须计算两个16位整数之和的情况。它必须首先将8个低位位相加,然后再将8个高位位相加,因此需要两条指令来执行该操作。 16位处理器仅用一条指令即可执行该操作。
  2. 指令级并行性:每个时钟周期阶段,处理器只能寻址少于一条指令。这些指令可以重新排序和分组,然后在不影响程序结果的情况下并发执行。这称为指令级并行性。
  3. 任务并行性:任务并行性将任务分解为子任务,然后分配每个子任务以供执行。处理器同时执行子任务。

为什么要并行计算?

  • 整个现实世界都是动态的,也就是说,许多事情在某个时间发生,但同时发生在不同的地方。这些数据非常庞大,需要管理。
  • 现实世界的数据需要更多的动态仿真和建模,而要实现相同的目标,并行计算是关键。
  • 并行计算可提供并发性,并节省时间和金钱。
  • 只能使用并行计算的方法来组织复杂的大型数据集及其管理。
  • 确保资源的有效利用。保证了硬件的有效使用,而在串行计算中仅使用了一部分硬件,其余部分变为空闲状态。
  • 而且,使用串行计算来实现实时系统也是不切实际的。

并行计算的应用:

  • 数据库和数据挖掘。
  • 系统的实时仿真。
  • 科学与工程。
  • 先进的图形,增强现实和虚拟现实。

并行计算的局限性:

  • 它解决了多个子任务和流程之间难以实现的通信和同步等问题。
  • 必须以一种可以在并行机制中进行处理的方式来管理算法。
  • 该算法或程序必须具有低耦合和高内聚性。但是创建这样的程序很困难。
  • 更熟练和熟练的程序员可以很好地编写基于并行的程序。

并行计算的未来:计算图经历了从串行计算到并行计算的巨大转变。像英特尔这样的科技巨头已经通过采用多核处理器向并行计算迈出了一步。为了更好,并行计算将彻底改变计算机的工作方式。在全世界比以往更多的相互连接的情况下,并行计算在帮助我们保持这种状态方面发挥了更好的作用。随着更快的网络,分布式系统和多处理器计算机的使用,它变得更加必要。