阿姆达尔定律用于计算算法并行化后可获得的最大预期改进:
Speedup = 1 / ( (1-p) + p/N )
复制代码
其中 p 是代码的并行运行时间, N 是计算机核数;但此定律没有考虑到并行执行时的锁竞争、线程管理等消耗,最重要的是此定律没有考虑在计算机核数增加时,是否处理的数据也会更多,而只计算了固定核数固定任务的加速比。
古斯塔夫森定律相比于阿姆达尔定律,认为在计算机核数增加后所处理的任务就会更多,求解规模变大后串行代码运行时间是否会增加?
Speedup = p - a * ( p - 1 )
复制代码
其中 p 是计算机核数, a 是串行代码执行时间所占百分比。