计算机体系结构中并行性的条件是什么?


并行性有各种条件,如下所示 -

  • 数据和资源依赖性 - 程序由多个部分组成,因此需要能够并行实现程序的各个部分,每个部分在其他部分方面应该是自主的。程序各个部分的依赖关系可能有多种形式,如资源依赖、控制依赖和数据依赖。

    依赖图可以定义这种关系。程序语句由节点定义,带有多个标签的有向边显示语句之间的顺序关系。分析依赖图后,可以证明存在并行化和矢量化的机会。

    数据依赖性 - 数据依赖性显示语句之间的关系。数据依赖性有 5 种类型,如下所示 -

    • 反依赖性 - 如果语句 S2 在语句 ST1 之后执行,并且 ST2 的输出与 ST1 的输入重叠,则语句 S2 反依赖于语句 ST1
    • 输入依赖性 - 读取和写入是输入语句输入依赖性,并非因为涉及相同的变量,而是因为两个输入语句都引用了相同的文件。
    • 未知依赖性 - 在以下方法中无法找到两个语句之间的依赖关系
      • 变量的下标本身是下标。
      • 下标没有循环索引变量。
      • 下标在循环索引变量中是非线性的。
    • 输出依赖性 - 如果两个语句创建相同的输出变量,则它们是输出依赖。
    • 流依赖性 - 如果存在从 ST1 到 ST2 的表达式路径,并且至少 ST 的输出馈送到 ST2 的输入中,则语句 ST2 流依赖于语句 ST1
  • 软件并行性 - 软件依赖性由程序的控制和数据依赖性表示。程序配置文件或程序流程图揭示了并行度。软件并行性是算法、编程风格和编译器优化的函数。程序流程图显示同时可执行操作的模式。程序中的并行性在实现期间会发生变化。

  • 硬件并行性 - 硬件并行性由硬件多重性和机器硬件表示。它是成本和性能权衡的函数。它表示同时可执行操作的资源应用设计。它还表示处理器资源的执行。识别硬件中并行性的一种方法是使用每个机器周期发出的多个指令。

更新于: 2021-07-30

7K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告