并行性的量化指标
Quantitative metrics for parallelism
一些参数在 Hwang 的高级计算机体系结构书中已经描述,例如加速、效率、冗余、利用率和质量,如下图所示。
我完全理解并部分理解最后一个参数,质量。问题是,为什么质量与冗余成反比关系。如前所述,冗余显示了软件并行性和硬件之间的匹配。例如,一个处理器运行一条单元指令,因此,O(1)=1.
通过O(n)我们实际上是在增加处理器的数量,所以单元运算增加,上限为n。所以,那很好!是吗?
但是根据质量指标,如果我们增加冗余,质量就会下降。可能有些词的定义在这里有歧义。
有什么想法吗?
我想我误解了O(n),它是所有处理器在整个执行持续时间内执行的单元操作总数。这没有上限并且 O(1) 不一定(实际上不是)1;这取决于应用程序。与在单处理器上执行应用程序相比,如果我们不得不在 n 个处理器上并行化应用程序(即冗余大于 1),那么这是一件坏事,冗余越大,软件和软件之间的不匹配就越大。硬件并行性。理想情况下,冗余度为 1。因此,如果我们想将加速比、效率和冗余度合并为一个质量指标,则加速比和效率应该是分子,冗余度应该是分母。
值得注意的是,书中提到的这些指标的大多数上限和下限在现代处理器上都过于简单。它们在简单(标量)处理器上最有意义。但是,在现代多核系统上,它们无法准确捕获现实中可能发生的情况。例如,2 处理器系统的加速比可能低于 1 或高于 2。冗余度不仅取决于 ISA,还取决于编译器。所以它可以小于 1 或大于 2。尽管指标本身仍然非常有用。
一些参数在 Hwang 的高级计算机体系结构书中已经描述,例如加速、效率、冗余、利用率和质量,如下图所示。
我完全理解并部分理解最后一个参数,质量。问题是,为什么质量与冗余成反比关系。如前所述,冗余显示了软件并行性和硬件之间的匹配。例如,一个处理器运行一条单元指令,因此,O(1)=1.
通过O(n)我们实际上是在增加处理器的数量,所以单元运算增加,上限为n。所以,那很好!是吗?
但是根据质量指标,如果我们增加冗余,质量就会下降。可能有些词的定义在这里有歧义。
有什么想法吗?
我想我误解了O(n),它是所有处理器在整个执行持续时间内执行的单元操作总数。这没有上限并且 O(1) 不一定(实际上不是)1;这取决于应用程序。与在单处理器上执行应用程序相比,如果我们不得不在 n 个处理器上并行化应用程序(即冗余大于 1),那么这是一件坏事,冗余越大,软件和软件之间的不匹配就越大。硬件并行性。理想情况下,冗余度为 1。因此,如果我们想将加速比、效率和冗余度合并为一个质量指标,则加速比和效率应该是分子,冗余度应该是分母。
值得注意的是,书中提到的这些指标的大多数上限和下限在现代处理器上都过于简单。它们在简单(标量)处理器上最有意义。但是,在现代多核系统上,它们无法准确捕获现实中可能发生的情况。例如,2 处理器系统的加速比可能低于 1 或高于 2。冗余度不仅取决于 ISA,还取决于编译器。所以它可以小于 1 或大于 2。尽管指标本身仍然非常有用。