并行计算机体系结构 - 导论
在过去的 50 年里,计算机系统的性能和能力有了巨大的发展。这得益于超大规模集成电路(VLSI)技术的帮助。VLSI 技术允许在单个芯片上容纳大量组件,并提高时钟频率。因此,可以同时并行执行更多操作。
并行处理也与数据局部性和数据通信相关。**并行计算机体系结构**是在任何时间点,在给定技术和成本限制下,组织所有资源以最大化性能和可编程性的方法。
为什么选择并行体系结构?
并行计算机体系结构通过使用越来越多的处理器,为计算机系统的发展增添了新的维度。原则上,利用大量处理器获得的性能高于给定时间点单个处理器的性能。
应用趋势
随着硬件容量的进步,对高性能应用的需求也随之增加,这反过来又对计算机体系结构的发展提出了要求。
在微处理器时代之前,高性能计算机系统是通过奇特的电路技术和机器组织获得的,这使得它们价格昂贵。现在,高性能计算机系统是通过使用多个处理器获得的,并且大多数重要和需求量大的应用程序都编写为并行程序。因此,为了获得更高的性能,需要开发并行体系结构和并行应用程序。
为了提高应用程序的性能,**加速比**是需要考虑的关键因素。**p 个处理器的加速比**定义为:
$$加速比(p 个处理器) \equiv \frac{性能(p 个处理器)}{性能(1 个处理器)}$$对于单个固定问题,
$$计算机系统的性能 = \frac{1}{完成问题所需的时间}$$科学和工程计算
并行体系结构已成为科学计算(如物理、化学、生物学、天文学等)和工程应用(如油藏模拟、气流分析、燃烧效率等)不可或缺的一部分。在几乎所有应用中,对计算输出的可视化都有巨大的需求,从而导致对开发并行计算以提高计算速度的需求。
商业计算
在商业计算(如视频、图形、数据库、OLTP 等)中,也需要高速计算机在指定时间内处理海量数据。桌面使用多线程程序,这几乎类似于并行程序。这反过来也要求开发并行体系结构。
技术趋势
随着技术和体系结构的发展,对开发高性能应用程序的需求非常强烈。实验表明,并行计算机的工作速度远快于最先进的单处理器。此外,并行计算机可以在技术和成本限制范围内开发。
这里使用的主要技术是 VLSI 技术。因此,如今可以在相同面积内安装越来越多的晶体管、门和电路。随着基本 VLSI 特征尺寸的减小,时钟频率也与其成比例地提高,而晶体管数量则以平方增长。预计同时使用许多晶体管(并行性)将比提高时钟频率获得更好的性能。
技术趋势表明,基本的单芯片构建块将提供越来越大的容量。因此,在单个芯片上放置多个处理器的可能性越来越大。
体系结构趋势
技术的进步决定了什么可行;体系结构将技术的潜力转化为性能和能力。**并行性**和**局部性**是两种方法,其中更大容量的资源和更多晶体管提高了性能。但是,这两种方法争夺相同的资源。当多个操作并行执行时,执行程序所需的周期数减少了。
但是,需要资源来支持每个并发活动。还需要资源来分配本地存储。通过使用资源利用一定程度的并行性和一定程度的局部性的中间行动计划,可以实现最佳性能。
通常,计算机体系结构的历史被划分为四个世代,具有以下基本技术:
- 真空管
- 晶体管
- 集成电路
- VLSI
到 1985 年,这段时间以位级并行性的增长为主导。4 位微处理器之后是 8 位、16 位等等。为了减少执行完整 32 位操作所需的周期数,数据路径的宽度加倍。后来,引入了 64 位操作。
**指令级并行性**的增长主导了 80 年代中期到 90 年代中期。RISC 方法表明,对指令处理步骤进行流水线处理很简单,因此平均而言,几乎每个周期都会执行一条指令。编译器技术的进步使指令流水线更有效率。
在 80 年代中期,基于微处理器的计算机由以下部分组成:
- 一个整数处理单元
- 一个浮点处理单元
- 一个缓存控制器
- 用于缓存数据的 SRAM
- 标记存储
随着芯片容量的增加,所有这些组件都合并到单个芯片中。因此,单个芯片包含用于整数运算、浮点运算、内存操作和分支操作的独立硬件。除了对单个指令进行流水线处理外,它还一次获取多条指令,并在可能的情况下将它们并行发送到不同的功能单元。这种类型的指令级并行性称为**超标量执行**。