效率和并行与串行比较的加速

问题描述 投票:2回答:2

目前,我在书房阅读指南,我的教授在课堂上发放。研究引导不转让,只是要知道会在考试的内容。我已经完成了所有,但1度的问题,希望有人能帮助我。

这里是这样的问题:假如Tserial = n和Tparallel = N / P + LOG2(p),其中时间以毫秒为单位,p是工序数。如果我们用k倍增加P,找到我们需要多少增加n的为了保持恒定效率的公式。我们应当在多大程度上增加,如果我们加倍的过程从8到16的数n?在并行程序可扩展性?

在了解任何帮助,这将不胜感激。

performance parallel-processing processing-efficiency
2个回答
11
投票

无论是评论和你解决恒定的并行计算时间的第一个答案的帮助,但是这是不是解决了恒定的效率有点不同。

如上所述,并行效率是你如何有效地利用您的多处理器的定义。 100%的效率就意味着你是从使用p个处理器越来越p加速的因素;所以效率在每个处理器的加速比来定义的:

所以现在你要考虑恒定的效率,如果你被一个因子k和问题的规模由因子k”增加处理器数量。

让我们先来做到这一点没有“并行开销”一词涉及数(P):

例如,效率永远是1,所以你改变处理器的数量,你不需要做任何的问题大小。

但是,因为有一些开销,恒定的效率,你需要为你扩展解决更大的问题大小。随着开销来看,你会得到

让我们来看看这里渐近 - 如果你的处理器的无限数量是已经,你已经在零效率(因为有每个处理器为零的工作,但无限的开销),所以你可以保持问题规模不变;效率将保持不变。在另一方面,你永远不会成为能够增加问题的规模足以夺回并行效率,你必须在P = 1;这是100%,任何你做必然会比,由于开销较少。

另外请注意,您必须增加问题大小的量总是要至少比你增加处理器数量的因素多一点点。

在特定的情况下,你看,P = 8,K = 2,则需要通过2 + 2/3的增加你的问题大小。


0
投票

希望这个工作是正确的。

例如,如果Tserial = 10ms时,在一个理想的世界(具有100%的效率),如果用2个进程做并行处理,Tparallel(理想的)为10ms / 2 = 5毫秒

不幸的是,任何并行处理会招致处理开销来管理这些处理器之间分配的作品。

在这种情况下,用于向管理开销所花费的时间的公式为log 2(P)。因此,如果有2个处理器和Tserial = 10ms时,Tparallel变为5毫秒+ LOG2(2)= 6ms的

使用上面的例子,让我们假设“恒定的效率”意味着,如果我们用k倍增加P,多少,我们需要增加Tserial即n,使得Tparallel仍然为6ms

让=因子增加Ñ

N / P + LOG2(P)= NA /包+ LOG2(PK)

N / P + LOG2(P)= NA /包+ LOG2(P)+的log 2(k)的

N / A = P / PK + LOG2(k)的

NK - PK =日志2在(a)中

K-A =(PK LOG2(K))/ N

一个= K - [(PK LOG2(K))/ n]的

如果p = 8,k = 2时

A = 2 - [(16个LOG2(2))/ N] A = 2 - (16 / N)

在这种情况下,并行程序是可伸缩的,因为它可以处理几乎两倍的工作量如果加倍处理器的数目。提供N >> 16

© www.soinside.com 2019 - 2024. All rights reserved.