并行程序两个定律

并行程序两个定律

使用并行程序的目的:

  1. 为了获得更好的性能
  2. 由于业务模型的需要,需要多个执行实体

Amdahl定律

Amdahl定律定义了串行系统并行化后的加速比的计算公式和理论上限
加速比定义:加速比=优化前系统耗时/优化后系统耗时
加速比越高,表明优化效率越高
推导公式:
n:处理器个数
T:时间
T1:表示优化前耗时(只有一个处理器时的耗时)
Tn:使用n个服务器优化后的耗时
F:程序中只能串行执行的比例
在这里插入图片描述
当cpu处理器数量趋于无穷大的时候(理想化),加速比=1/F,加速比跟系统串行率成反比,所以就是串行率越低,则优化效果越好
程序当中的串行行为会影响系统的速度,仅仅增加CPU处理器数量不一定能起到有效的作用,也要提高系统内并行化的模块比重
增加cpu处理器数量意味着投入的资本需要更多,所以需要在一定的cpu数量下,合理增加并行处理器数量,如果只提高cpu数量,而不降低程序的串行化比重,也无法对系统性能有多大的提高

Gustafson定律

推导公式:
在这里插入图片描述
当串行比例很小,并行比例很大,那么加速比就是处理器的个数

两个定律是否互相矛盾

两个理论的结论不同,但是并不是说其中一个是错误的,只是偏重点不同
Amdahl强调:当串行比例一定时,加速比是有上限的,不管有多少个CPU参与计算,都不能突破这个上限
Gustafson强调:如果可被并行化的代码所占比重足够多(串行比重小),那么加速比就能睡着CPU的数量线性增长
理想状态下(几乎不可能):

  1. 系统没有可被串行化的代码(即F=1,全部串行),加速比就是1(没有提高系统性能)
  2. 系统中可串行代码比重达到100%(即F=0,全部并行),加速比就是n(处理器个数)

参考书籍

《Java高并发程序设计》-------------------------葛一鸣,郭超著

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值