并行加速和效率
Parallel Speedup and Efficiency
有一个简单的问题。
并行加速和效率有什么区别。
谢谢
如果你有两个工人,在天真的世界里,你应该可以用一半的时间完成一项工作。这是 2 倍 加速 。如果两个 worker 完全不交互并且独立工作,理论上可以实现 2 倍的加速。这 class 个问题称为 embarassingly-parallel,并不常见。
在这种情况下,两个工人都可以像原来的工人一样快速地继续工作,即 efficiency 为 100%。
Amdahl's Law: 虽然在现实世界的计算中,总会有一些共享资源,因此两个工作者之间会有一些争用。这意味着两个工人可能 运行 比原来的单个工人慢一点。
效率 现在成为衡量每个工人速度下降的指标。假设他们 运行ning 的速度是原来单个工人速度的 0.9 倍,现在效率是 90%
效率的下降也意味着在原来的时间内,任何一个工人都只完成了 90% 的工作。所以实际加速从 2x 下降到 1.8x
只是在这里添加技术定义。设 T_1 是您的应用程序在 1 个处理器上完成所需的时间(顺序时间),T_p 时间在 p 核上执行时,您的应用程序需要。然后,加速 S 定义为
S = T_1 / T_p
加速衡量您在使用 p 核心时获得的加速度,
对应的效率E定义为
E = T_1 / (p T_p)
效率衡量您并行使用 p 核心的程度。
p 内核的最大理论加速是 p,但只有在令人尴尬的并行应用程序(没有通信和其他开销)时才能达到此限制。相应地,最大效率为1(或100%)。在实践中,一个常见的经验法则是应用程序的目标应该是至少达到 0.7(或 70%)的效率。
一位女士可以在 9 个月内生孩子。
如果你把9个女人放在case上,1个月内你是生不下来的。那是零加速和 11% 的效率。
如果你把 9 个女士放在箱子上,你可以在 9 个月内生下 9 个婴儿。那是 9 倍的加速和 100% 的效率。
有一个简单的问题。
并行加速和效率有什么区别。
谢谢
如果你有两个工人,在天真的世界里,你应该可以用一半的时间完成一项工作。这是 2 倍 加速 。如果两个 worker 完全不交互并且独立工作,理论上可以实现 2 倍的加速。这 class 个问题称为 embarassingly-parallel,并不常见。 在这种情况下,两个工人都可以像原来的工人一样快速地继续工作,即 efficiency 为 100%。
Amdahl's Law: 虽然在现实世界的计算中,总会有一些共享资源,因此两个工作者之间会有一些争用。这意味着两个工人可能 运行 比原来的单个工人慢一点。
效率 现在成为衡量每个工人速度下降的指标。假设他们 运行ning 的速度是原来单个工人速度的 0.9 倍,现在效率是 90%
效率的下降也意味着在原来的时间内,任何一个工人都只完成了 90% 的工作。所以实际加速从 2x 下降到 1.8x
只是在这里添加技术定义。设 T_1 是您的应用程序在 1 个处理器上完成所需的时间(顺序时间),T_p 时间在 p 核上执行时,您的应用程序需要。然后,加速 S 定义为
S = T_1 / T_p
加速衡量您在使用 p 核心时获得的加速度, 对应的效率E定义为
E = T_1 / (p T_p)
效率衡量您并行使用 p 核心的程度。 p 内核的最大理论加速是 p,但只有在令人尴尬的并行应用程序(没有通信和其他开销)时才能达到此限制。相应地,最大效率为1(或100%)。在实践中,一个常见的经验法则是应用程序的目标应该是至少达到 0.7(或 70%)的效率。
一位女士可以在 9 个月内生孩子。
如果你把9个女人放在case上,1个月内你是生不下来的。那是零加速和 11% 的效率。
如果你把 9 个女士放在箱子上,你可以在 9 个月内生下 9 个婴儿。那是 9 倍的加速和 100% 的效率。