
并行计算机体系结构 - 模型
并行处理已发展成为现代计算机中的一项有效技术,以满足现实应用中对更高性能、更低成本和更准确结果的需求。由于多编程、多处理或多计算的实践,当今的计算机中并发事件很常见。
现代计算机拥有强大而广泛的软件包。要分析计算机性能的发展,首先必须了解硬件和软件的基本发展。
计算机发展里程碑 - 计算机的发展有两个主要阶段 - 机械或机电部件。现代计算机是在引入了电子元件后发展起来的。电子计算机中高迁移率的电子取代了机械计算机中的操作部件。为了信息传输,以接近光速传播的电信号取代了机械齿轮或杠杆。
现代计算机的组成要素 - 现代计算机系统由计算机硬件、指令集、应用程序、系统软件和用户界面组成。

计算问题可分为数值计算、逻辑推理和事务处理。一些复杂问题可能需要三种处理模式的组合。
计算机体系结构的演变 - 在过去的四十年里,计算机体系结构经历了革命性的变化。我们从冯诺依曼体系结构开始,现在有了多计算机和多处理器。
计算机系统的性能 - 计算机系统的性能取决于机器能力和程序行为。可以通过更好的硬件技术、先进的体系结构特性和高效的资源管理来提高机器能力。程序行为是不可预测的,因为它取决于应用程序和运行时条件。
多处理器和多计算机
在本节中,我们将讨论两种类型的并行计算机 -
- 多处理器
- 多计算机
共享内存多计算机
三种最常见的共享内存多处理器模型是 -
统一内存访问 (UMA)
在此模型中,所有处理器都统一共享物理内存。所有处理器对所有内存字都有相同的访问时间。每个处理器可能都有一个私有缓存内存。外设遵循相同的规则。
当所有处理器都能平等访问所有外设时,该系统称为对称多处理器。当只有一个或几个处理器可以访问外设时,该系统称为非对称多处理器。

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

仅缓存内存体系结构 (COMA)
COMA 模型是 NUMA 模型的特例。在这里,所有分布式主内存都转换为缓存内存。

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

多向量和 SIMD 计算机
在本节中,我们将讨论用于向量处理和数据并行的超级计算机和并行处理器。
向量超级计算机
在向量计算机中,向量处理器作为可选功能附加到标量处理器。主机计算机首先将程序和数据加载到主内存中。然后标量控制单元解码所有指令。如果解码的指令是标量运算或程序运算,则标量处理器使用标量功能流水线执行这些运算。
另一方面,如果解码的指令是向量运算,则指令将发送到向量控制单元。

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

PRAM 和 VLSI 模型
理想模型为开发并行算法提供了一个合适的框架,而不考虑物理约束或实现细节。
可以执行这些模型以获得并行计算机上的理论性能界限,或者在芯片制造之前评估芯片面积和操作时间的 VLSI 复杂性。
并行随机存取机
Sheperdson 和 Sturgis (1963) 将传统的单处理器计算机建模为随机存取机 (RAM)。Fortune 和 Wyllie (1978) 开发了一种并行随机存取机 (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 轨迹)来完成的。
在多线程轨迹中,假设在同一处理器上交错执行各种线程以隐藏在不同处理器上执行的线程之间的同步延迟。线程交错可以是粗粒度的(多线程轨迹)或细粒度的(数据流轨迹)。