美文网首页
阿姆达尔法则及其应用

阿姆达尔法则及其应用

作者: 邓文达 | 来源:发表于2018-11-07 19:58 被阅读94次

    《穷查理宝典》一书介绍了查理芒格的生活、投资思想,被很多名人推荐。芒格在书中强调要建立“多元思维模型”,将各个学科的重要理论和知识融入你的思考框架之中。惭愧的是我接触了芒格的思想之后没有认真去寻找这些优秀的“思维模型”,因此我对这个思想的认识一直停留在“司机的知识”(只是知道一个概念的名称,但并不真正了解其背后的真正含义)层面。

    最近吴军老师在得到专栏“吴军的谷歌方法论”中介绍了计算机领域的阿姆达尔法则(Amdahl’s Law),我突然意识到这就是一个非常好的“思维模型”。虽然我是计算机专业毕业的,但是惭愧的是,我以前并没有接触过这个法则。

    阿姆达尔法则是由著名计算机科学家吉尼·阿姆达尔(Gene Amdahl)提出的,其核心思想是:当我们提升系统某个部分的性能时,对系统整体性能的影响依赖于这个部分的重要程度和性能提升了多少

    考虑一个系统,在其中执行某个程序需要时间Told。假设系统中某个部分占整个运行时间的百分比为a,而我们将它的性能提高到了k倍。那么原来这部分需要的时间为a·Told,现在为(a·Told)/k。则运行原有程序的新的时间为:

                        Tnew = (1-a)Told + (a·Told)/k = Told·[ (1-a) + a/k ]

    因此,加速比

                        S = Told / Tnew = 1/ [ (1-a) + a/k ]

    现在,如果一个系统的原来占用60%时间(a = 0.6)的部分性能提升为原来的3倍(k = 3),则获得的加速比为:

                                 1/ [ (1 - 0.6) + 0.6 / 3 ] = 1.67

    因此,即使我们大幅提高了系统的一个主要部分的性能,获得的加速比还是很小。还是同样的例子,考虑极端的情况下,我们可以不计成本的提高占60%时间部分的性能,能获得多少加速比呢?

    答案是只有2.5。因为假设k = ∞,则加速比为:

                        1/ [ (1 - 0.6) + 0.6 / ∞ ] = 1/ (1 - 0.6) = 2.5

    这就是阿姆达尔法则的主要观点:要想大幅提高整个系统的性能,我们必须提高整个系统很大一部分的速度,而不仅仅是某个部分

    阿姆达尔法则的重要意义在于它提供了一个改进任何过程的通用原则。除了适用于提高计算机系统的速度之外,它还能用于指导公司开发产品,或者是个人的发展。

    比如,苹果手机的单个硬件指标并不是最突出的,拼单个硬件的话跟同价位甚至是低价位的手机都比不过。但是苹果并不追求单个硬件指标的性能突出,而是追求整体性能的均衡,包括硬件和软件完美结合。因此即使苹果手机单个的硬件性能测试并不突出,但是苹果手机使用起来很流畅,深受用户喜爱。因此苹果手机能卖很高的价钱,相应的,利润也就非常高。

    同样地,根据阿姆达尔法则,我们作为个人想要提升自己的竞争力,也要考虑从多个维度提升自己,而不能仅局限于某个方面提升。因为到了一定程度后,人某个维度能力的提升空间有限,对个人整体竞争力的提升帮助自然也有限。而此时如果考虑提升另一个能力,获得的提升可能更多。

    因此在提升自己的道路上不要一条路走到黑,那样做只能获得线性的提升,而且有提升的极限;我们要做的更应该是时不时地切换一下提升的方向,这样在各个维度轮番提升,最后更可能获得指数级的提升。

    相关文章

      网友评论

          本文标题:阿姆达尔法则及其应用

          本文链接:https://www.haomeiwen.com/subject/fkkbxqtx.html