达到最大加速
maximum speed up achieved
如果只有 80% 的应用程序执行时间可以 运行 并行,您可以实现的最大加速比是多少?
我做了这样的事情,
1-.8 = .2
overall speedup = 1/0.2 = 5
我不确定我的尝试是对还是错?请说明。
你需要将那 20% 作为常量,因为它需要串行执行。
还要记住 Sp 取决于处理器的数量。总是。我们可以做理论,因为处理器的 N 是一个 'known' 变量。但是更多的处理器也带来更少的'ideality'。增加处理器数量会导致更高的错误。理想是一个线性函数(Sp/p),实际上不是。
所有并行程序包含:
- 平行部分
- 连载章节
串行部分限制了并行有效性
阿姆达尔定律正式说明了这一点:
多处理器对加速的影响
Sp = Ts/Tp <= 1/(fs + (fp/p))
- Sp: 后续算法的执行时间
- Tp:并行算法的执行时间
- fs:代码的序列部分
- fp: 代码的并行部分
- p:处理器数量
所以在你的情况下
Sp 将小于或等于:
1/(0.2 + 0.8/p)
最大 Sp 的结果:
2 个处理器:1,666
4 个处理器:2,5
...
.
如果只有 80% 的应用程序执行时间可以 运行 并行,您可以实现的最大加速比是多少?
我做了这样的事情,
1-.8 = .2
overall speedup = 1/0.2 = 5
我不确定我的尝试是对还是错?请说明。
你需要将那 20% 作为常量,因为它需要串行执行。
还要记住 Sp 取决于处理器的数量。总是。我们可以做理论,因为处理器的 N 是一个 'known' 变量。但是更多的处理器也带来更少的'ideality'。增加处理器数量会导致更高的错误。理想是一个线性函数(Sp/p),实际上不是。
所有并行程序包含:
- 平行部分
- 连载章节
串行部分限制了并行有效性
阿姆达尔定律正式说明了这一点: 多处理器对加速的影响
Sp = Ts/Tp <= 1/(fs + (fp/p))
- Sp: 后续算法的执行时间
- Tp:并行算法的执行时间
- fs:代码的序列部分
- fp: 代码的并行部分
- p:处理器数量
所以在你的情况下
Sp 将小于或等于:
1/(0.2 + 0.8/p)
最大 Sp 的结果:
2 个处理器:1,666
4 个处理器:2,5 ... .