【发布时间】:2015-05-08 15:15:10
【问题描述】:
我读过一篇论文,其中将(并行)算法的并行成本定义为 CP(n) = p * TP (n),其中p 是处理器数量,T 是处理时间,n 是输入。一个算法是成本最优的,如果 CP(n) 近似为常数,即如果算法在同一输入上使用两个处理器而不是一个处理器,则它只需要一半时间。
还有一个概念叫做并行工作,我没有完全掌握。 论文称它测量了执行的并行 OP 的数量。 一个算法是工作最优的,如果它执行的操作数与它的顺序对应物一样多(渐近地)。 成本最优算法总是工作最优,但反之则不然。
有人能说明并行工作的概念并说明并行成本的异同吗?
【问题讨论】:
-
实际提供论文链接以获取更多上下文会有所帮助。
-
您可以简单地“并行化”任何顺序算法,方法是在一个处理器上运行它并让所有其他处理器空闲。这是工作最优的,但它的并行成本比原来的顺序算法差一个因子等于处理器的数量。
-
@b4hand 这是一个讲座的私人脚本,所以我想我不应该发布它。
-
看起来作者的意思是你的算法瘫痪没有任何额外的成本。这并不总是正确的,例如他们中的一些人需要额外的内务管理,如果他们不需要,那么表明时间是最优的就很简单了,如果不是,那么它仍然可以是成本最优的(近似值可能接近你的时间通缉)
-
感谢 cmets 和答案。我现在有了更好的理解,并添加了自己的详细答案。
标签: performance algorithm optimization parallel-processing gpgpu