对很多的应用问题,已知的最快的串行算法也许很难(甚至不可能)并行化,这迫使我们选择一个性能较差但比较容易并行的串行算法(也就是表现出较多的并发的算法)来得到并行算法。如果用W来表示已知的最快的串行算法的执行时间,用W'来表示用来开发并行算法的同一个问题的较差的串行算法的执行时间,那么,它们之间的差W'-W应该被视为额外开销函数的一部分,因为它表示了并行算法所耗费的额外工作。
即使是基于最快的串行算法的并行算法也可能比串行算法执行更多的计算,一个这样的算法的例子是快速傅立叶变换。在它的串行版本中,计算的某些中间结果可以复用,而在它的并行版本中,由于这些中间结果由不同的处理器产生,所有它们无法被复用,因此,某些计算必须在不同的处理器上执行多次,这些计算也构成了额外开销的一部分。
|