通过并行性最大化处理速度

时间:2009-05-24 10:45:42

标签: parallel-processing big-o

是否存在任何比线性速度增加更多来自并行化算法的情况?

2 个答案:

答案 0 :(得分:5)

从理论角度来看,你能达到的最大值是线性加速。 在实践中,有可能super linear speedup。如果您可以在远离地分发您的问题,您可以利用处理器缓存的影响,例如因为它不适合单个核心的缓存,所以你的问题可以比线性更好地扩展。

答案 1 :(得分:1)

理论上,没有 - 但在实践中可能就是这种情况(取决于底层硬件和您的具体问题)。比较并行和顺序代码并不简单(您必须将最快的顺序实现与并行实现进行比较,而不仅仅是在单个处理器/线程上运行的并行实现)。

但是,当有人说出超过线性的加速时,我总是会怀疑;他们要么没有正确测量它(见上文),测量一个工件(硬件/操作系统相关)并应相应地记录它,或者这只适用于问题/实现/硬件的特定组合。