有关并行的两个重要定律
2018-03-28 13:43
525 查看
使用并行程序处于两个目的。第一,为了获得更好的性能;第二,由于业务模型的需要,确实需要多个执行实体。一、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定律中,我们可以更容易地发现,如果串行化比例很小,并行化比例很大,那么加速比就是处理器的个数。只要你不断地累加处理器,就能获得更快的速度。你投入得越多,就能得到越多得价值
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定律中,我们可以更容易地发现,如果串行化比例很小,并行化比例很大,那么加速比就是处理器的个数。只要你不断地累加处理器,就能获得更快的速度。你投入得越多,就能得到越多得价值
相关文章推荐
- 有关并行的两个重要定律
- 《Java高并发程序设计》学习 --1.3有关并行的两个重要定律
- 有关机械手臂控制中的两个重要输入参数
- 有关机械手臂控制中的两个重要输入参数
- javascript与关闭窗口有关的两个重要事件
- 单源最短路径两个重要算法
- Ajax 缓存: 两个重要的事实
- 两个重要的星号图
- mysql存储过程中两个CURSOR嵌套使用遇到的有关问题
- 两个与位运算有关的小问题
- Form表单的两个重要属性
- 如何用两个栈来实现一个队列,并分析有关队列操作的运行时间。
- 有关两个UITextField执行时的顺序与方法
- CPU亲和性(affinity)及与亲和性有关的两个函数 sched_setaffinity()和 sched_getaffinity()
- 【JSP开发】有关session的一些重要的知识点
- 附两个自己认为比较重要的链接地址(移动端的position:fixed,flexbox实现垂直居中布局)
- 成功"与“成人”哪个重要,且看两个老师的较量
- padding和margin两个重要属性的介绍及举例
- [ORACLE]从两个简单的存储过程看绑定变量的重要
- Cookie和Session-----会话跟踪中的两个重要技术