其公式是这样的:
S=1/(1-a+a/n)
其中,a为并行计算部分所占比例,n为并行处理结点个数。这样,当1-a=0时,(即没有串行,只有并行)最大加速比s=n;当a=0时(即只有串行,没有并行),最小加速比s=1;当n→∞时,极限加速比s→ 1/(1-a),这也就是加速比的上限。例如,若串行代码占整个代码的25%,则并行处理的总体性能不可能超过4。这一公式已被学术界所接受,并被称做“阿姆达尔定律”,也称为“安达尔定理”(Amdahl law)。
那么这个公式有什么用呢?
1. 增加处理器数,将计算负载分布到更多处理器上,从而提高计算速度
2. 程序中可并行代码的比例决定你增加处理器(总核心数)的上限
所以以后,如果哪个币号称自己的速度多牛叉,请先看看他是怎么提升速度的,如果是增加处理器数,一般都是没问题的,从而避免被骗。
不免俗地求赞,谢谢。
估计很少人能懂,除非计算机专业的。