并行计算中的Amdahl与Gustafson定律

今天在看CUDA_C_Best_Practices_Guide这个文档,里面将了个优化的原则,说得比较模糊,不过找到了一个写得很好哒,转载一下:

Amdahl定律

1个处理器串行计算时间/n个处理器并行计算时间
f表示串行部分时间所占比例,p表示并行的处理器个数
加速比S(p)=1/(f+(1-f)/p)
当p充分大时,S(p)趋向于1/f,所以,并行处理器的数量在达到充分大时,已经不能有效改善总体的处理性能。

Gustafson定律

p个处理器并行计算量/1个处理器的串行计算量
Ws表示串行部分负载量,Wp表示并行部分负载量,W=Ws+Wp,f表示串行负载量所占比例
加速比S(p)=(Ws+p*Wp)/(Ws+Wp)
=(f*W+p*(1-f)*W)/(f*W+(1-f)*W)
=(f+p(1-f))/1=f+p(1-f)
P越大,计算量增加越大,计算精度越高

ps:原文点这里

猜你喜欢

转载自blog.csdn.net/fishseeker/article/details/76599453