计算机体系结构中的并行类型有哪些?
计算机体系结构中存在各种类型的并行性,如下所示:
- 可用并行性和已利用并行性
并行性是计算中最重要的主题之一。几十年来,体系结构、编译器和操作系统框架一直在努力提取和利用尽可能多的可用并行性来加速计算。
- 可用并行性和已利用并行性
并行性是计算中最重要的主题之一。几十年来,体系结构、编译器和操作系统框架一直在努力提取和利用尽可能多的可用并行性来加速计算。
**函数式并行性**是从问题解决方案的逻辑中产生的那种并行性。它或多或少地出现在所有形式的问题解决方案描述中,例如程序流程图、数据流图、程序等等。
**数据并行性**仅存在于有限的问题集中,例如科学或工程计算或图像处理。这种类型的并行性为计算的数据并行元素提供了大规模并行执行的增长。
- 可用函数式并行性的级别
用命令式语言编写的程序可以在不同级别表示函数式并行性,即在多个粒度级别。在这种方法中,我们可以识别以下四个级别和相应的粒度大小:
指令级并行性表示程序的特定指令可以并行执行。指令可以是汇编(机器级)指令或高级语言指令。
并行性也可以在**循环级别**访问。因此,连续的循环迭代是并行执行的申请者。后续循环迭代之间的数据依赖性(称为递归)可以缩短它们的并行执行。
并行性以并行可执行方法的形式在**过程级别**访问。
并行性也可以在**用户级别**访问,我们将其视为粗粒度并行性。
- 函数式并行性的利用
可用的并行性可由与加速计算相关的体系结构、编译器和操作系统框架利用。让我们首先考虑函数式并行性的利用。函数式并行性可以在四个不同的粒度级别使用,例如指令、线程、进程和用户级别。
通过并行执行指令,充分利用传统顺序程序中基本的可用函数式并行性,在指令级别是完全普通的。这可以使用能够并行执行指令的体系结构来管理。这种体系结构定义为**指令级函数并行体系结构或简称为指令级并行体系结构**,通常缩写为**ILP 体系结构**。
- 并发执行模型
线程级并发执行定义为多线程。在这种方法中,可以为每个进程创建多线程,并且这些线程在操作系统的监督下在一个处理器上一起执行。
多线程通常被解释为线程级别的并发执行。多线程假定一个进程具有多个线程,即进程线程模型可以描述和调度处理器的作业单元。
进程级并发执行通常称为多任务处理。多任务处理定义了进程的并发执行。多个准备运行的进程可以由单个用户生成(如果允许进程复制),也可以由在多编程或分时中执行的多个用户生成。
- 数据并行性的利用
数据并行性可以通过两种不同的方法利用,一种情况是通过允许对称为数据并行体系结构的数据组件进行并行或流水线操作的专用体系结构来精确地利用数据并行性。