• 有关并行的两个重要定律


    使用并行程序处于两个目的。第一,为了获得更好的性能;第二,由于业务模型的需要,确实需要多个执行实体。

    一、Amdahl定律
    Amdahl定律是计算机科学中非常重要的定律。它定义了串行系统并行化后的加速比的计算公式和理论上限。
    加速比定义:加速比=优化前系统耗时/优化后系统耗时
    即,所谓加速比,就是优化前的耗时与优化后耗时的比值。加速比越高,表明优化效果越明显。图1.8显示了Amdahl公式的推导过程,其中n表示处理器个数,T表示时间,T1表示优化前耗时(也就是只有1个处理器时的耗时),Tn表示使用n个处理器优化后的耗时。F是程序中只能串行执行的比例。


    根据这个公式,如果CPU处理器数量趋于无穷,那么加速比与系统的串行化率成反比,如果系统中必须有50%的代码串行执行,那么系统的最大加速比为2。
    注意:根据Amdahl定律,使用多核CPU对系统进行优化,优化的效果取决于CPU的数量以及系统中的串行化程序的比重。CPU数量越多,串行化比重越低,则优化效果越好。仅提高CPU数量而不降低程序的串行化比重,也无法提高系统性能。

    二、Gustafson定律
    Gustafson定律也试图说明处理器个数、串行比例和加速比之间的关系,如图1.12所示,但是Gustafson定律和Amdahl定律的角度不同。同样,加速比都定义为优化前的系统耗时除以优化后的系统耗时。


    可以看到,由于切入角度的不同,Gustafson定律的公式和Amdahl定律的公式截然不同。从Gustafson定律中,我们可以更容易地发现,如果串行化比例很小,并行化比例很大,那么加速比就是处理器的个数。只要你不断地累加处理器,就能获得更快的速度。

    你投入得越多,就能得到越多得价值
  • 相关阅读:
    Python+Selenium三种等待方法
    Jmeter结果分析_聚合报告
    Linux安装Python3
    翻译Go Blog: 常量
    Go: 复合数据类型slice
    Python创建二维列表的正确姿势
    了解Flask
    urllib3中学到的LRU算法
    了解Prometheus
    《redis 5设计与源码分析》:第二章 简单动态字符串
  • 原文地址:https://www.cnblogs.com/nangonghui/p/8872869.html
Copyright © 2020-2023  润新知