计算机体系结构中并行性的条件是什么?
并行性有各种条件,如下所示 -
数据和资源依赖性 - 程序由多个部分组成,因此需要能够并行实现程序的各个部分,每个部分在其他部分方面应该是自主的。程序各个部分的依赖关系可能有多种形式,如资源依赖、控制依赖和数据依赖。
依赖图可以定义这种关系。程序语句由节点定义,带有多个标签的有向边显示语句之间的顺序关系。分析依赖图后,可以证明存在并行化和矢量化的机会。
数据依赖性 - 数据依赖性显示语句之间的关系。数据依赖性有 5 种类型,如下所示 -
- 反依赖性 - 如果语句 S2 在语句 ST1 之后执行,并且 ST2 的输出与 ST1 的输入重叠,则语句 S2 反依赖于语句 ST1。
- 输入依赖性 - 读取和写入是输入语句输入依赖性,并非因为涉及相同的变量,而是因为两个输入语句都引用了相同的文件。
- 未知依赖性 - 在以下方法中无法找到两个语句之间的依赖关系
- 变量的下标本身是下标。
- 下标没有循环索引变量。
- 下标在循环索引变量中是非线性的。
- 输出依赖性 - 如果两个语句创建相同的输出变量,则它们是输出依赖。
- 流依赖性 - 如果存在从 ST1 到 ST2 的表达式路径,并且至少 ST 的输出馈送到 ST2 的输入中,则语句 ST2 流依赖于语句 ST1。
软件并行性 - 软件依赖性由程序的控制和数据依赖性表示。程序配置文件或程序流程图揭示了并行度。软件并行性是算法、编程风格和编译器优化的函数。程序流程图显示同时可执行操作的模式。程序中的并行性在实现期间会发生变化。
硬件并行性 - 硬件并行性由硬件多重性和机器硬件表示。它是成本和性能权衡的函数。它表示同时可执行操作的资源应用设计。它还表示处理器资源的执行。识别硬件中并行性的一种方法是使用每个机器周期发出的多个指令。
广告