并行计算机架构 - 模型

并行处理已成为现代计算机中的一项有效技术,可满足实际应用中对更高性能、更低成本和更准确结果的需求。由于多道程序设计、多处理或多计算的实践,当今计算机中并发事件很常见。

现代计算机拥有强大而广泛的软件包。要分析计算机性能的发展,首先我们必须了解硬件和软件的基本发展。

  • 计算机发展里程碑 − 计算机发展有两个主要阶段 - 机械机电 部件。现代计算机是在引入电子元件后发展起来的。电子计算机中的高迁移率电子取代了机械计算机中的操作部件。对于信息传输,以接近光速的电信号取代了机械齿轮或杠杆。

  • 现代计算机的要素 − 现代计算机系统由计算机硬件、指令集、应用程序、系统软件和用户界面组成。

现代计算机系统的要素

计算问题分为数值计算、逻辑推理和事务处理。一些复杂的问题可能需要三种处理模式的结合。

  • 计算机体系结构的演变 − 在过去的四十年里,计算机体系结构经历了革命性的变化。我们从冯·诺依曼架构开始,现在我们有了多计算机和多处理器。

  • 计算机系统的性能 − 计算机系统的性能取决于机器能力和程序行为。机器能力可以通过更好的硬件技术、先进的架构特性和高效的资源管理来提高。程序行为是不可预测的,因为它取决于应用程序和运行时条件

多处理器和多计算机

在本节中,我们将讨论两种类型的并行计算机 −

  • 多处理器
  • 多计算机

共享内存多计算机

三种最常见的共享内存多处理器模型是 −

统一内存访问 (UMA)

在此模型中,所有处理器统一共享物理内存。所有处理器对所有内存字的访问时间均等。每个处理器可能都有一个私有缓存。外围设备也遵循相同的规则。

当所有处理器对所有外围设备都有同等的访问权限时,系统称为对称多处理器。当只有一个或几个处理器可以访问外围设备时,系统被称为非对称多处理器

UMA 多处理器

非统一内存访问 (NUMA)

在 NUMA 多处理器模型中,访问时间随内存字的位置而变化。在这里,共享内存物理分布在所有处理器之间,称为本地内存。所有本地内存的集合形成一个全局地址空间,所有处理器都可以访问该空间。

多处理器系统的 NUMA 模型

仅缓存内存架构 (COMA)

COMA 模型是 NUMA 模型的一个特例。在这里,所有分布式主存储器都转换为高速缓存存储器。

多处理器的 COMA 模型
  • 分布式内存多计算机 − 分布式内存多计算机系统由多台计算机(称为节点)组成,这些计算机通过消息传递网络相互连接。每个节点都充当一台自主计算机,具有处理器、本地内存,有时还具有 I/O 设备。在这种情况下,所有本地内存都是私有的,只有本地处理器可以访问。这就是为什么传统机器被称为无远程内存访问 (NORMA) 机器。

消息传递多处理器的通用模型

多向量和 SIMD 计算机

在本节中,我们将讨论用于向量处理和数据并行性的超级计算机和并行处理器。

向量超级计算机

在向量计算机中,向量处理器作为可选功能连接到标量处理器。主机首先将程序和数据加载到主内存。然后标量控制单元解码所有指令。如果解码后的指令是标量操作或程序操作,标量处理器将使用标量功能管道执行这些操作。

另一方面,如果解码后的指令是矢量操作,则指令将被发送到矢量控制单元。

矢量超级计算机的架构

SIMD 超级计算机

在 SIMD 计算机中,'N' 个处理器连接到控制单元,所有处理器都有各自的内存单元。所有处理器都通过互连网络连接。

SIMD 计算机的操作模型

PRAM 和 VLSI 模型

理想模型为开发并行算法提供了一个合适的框架,无需考虑物理约束或实现细节。

可以实施这些模型以获得并行计算机上的理论性能界限,或在制造芯片之前评估 VLSI 在芯片面积和操作时间上的复杂性。

并行随机存取机

Sheperdson 和 Sturgis (1963) 将传统的单处理器计算机建模为随机存取机 (RAM)。Fortune 和 Wyllie (1978) 开发了一个并行随机存取机 (PRAM) 模型,用于建模具有零内存访问开销和同步的理想并行计算机。

PRAM 模型

N 处理器 PRAM 具有共享内存单元。此共享内存可以集中或分布在处理器之间。这些处理器以同步的读取内存、写入内存和计算周期运行。因此,这些模型指定了如何处理并发读取和写入操作。

以下是可能的内存更新操作 −

  • 独占读取 (ER) − 在此方法中,每个周期只允许一个处理器从任何内存位置读取。

  • 独占写入 (EW) − 在此方法中,每次至少允许一个处理器写入内存位置。

  • 并发读取 (CR) − 它允许多个处理器在同一周期从同一内存位置读取相同信息。

  • 并发写入 (CW) − 它允许同时对同一内存位置执行写入操作。为了避免写入冲突,设置了一些策略。

VLSI 复杂度模型

并行计算机使用 VLSI 芯片来制造处理器阵列、内存阵列和大规模交换网络。

如今,VLSI 技术是二维的。VLSI 芯片的大小与该芯片中可用的存储(内存)空间量成​​正比。

我们可以通过实现该算法的 VLSI 芯片的芯片面积 (A) 来计算算法的空间复杂度。如果 T 是执行算法所需的时间(延迟),则 A.T 给出了通过芯片(或 I/O)处理的总位数的上限。对于某些计算,存在一个下限 f(s),使得

A.T2 >= O (f(s))

其中 A=芯片面积,T=时间

架构开发轨迹

我们沿着以下轨迹传播并行计算机的演进 −

  • 多处理器轨迹
    • 多处理器轨迹
    • 多计算机轨迹
  • 多数据轨迹
    • 矢量轨迹
    • SIMD 轨迹
  • 多线程轨迹
    • 多线程轨迹
    • 数据流轨迹

多处理器轨迹中,假设不同的线程在不同的处理器上并发执行,并通过共享内存(多处理器轨迹)或消息传递(多计算机轨迹)系统进行通信。

多数据轨道中,假设对大量数据执行相同的代码。这是通过在数据元素序列(矢量轨道)上执行相同的指令或通过在相似的数据集(SIMD 轨道)上执行相同的指令序列来实现的。

多线程轨道中,假设在同一处理器上交错执行各种线程,以隐藏在不同处理器上执行的线程之间的同步延迟。线程交错可以是粗略的(多线程轨道)或精细的(数据流轨道)。