并发和并行的区别_生活中并发和并行的例子[通俗易懂]

并发和并行的区别_生活中并发和并行的例子[通俗易懂]你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行

并发和并行的区别_生活中并发和并行的例子[通俗易懂]

你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。

你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。  (不一定是同时的)

你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。  

 

并发的关键是你有处理多个任务的能力,不一定要同时。  

并行的关键是你有同时处理多个任务的能力。  

 

所以我认为它们最关键的点就是:是否是『同时』。

并发是轮流处理多个任务,并行是同时处理多个任务

 

 

并行的两个重要定律
Amdahi定律
Amdahi定律定义了串行系统并行化后的加速比公式。

加速比定义:加速比 = 优化前系统耗时 / 优化后系统耗时

加速比越高,说明优化越明显。简单介绍一下Amdahi定律公式的推导。
优化后耗时T_n=T1(F+1/n(1-F)),其中T1表示优化前耗时,F表示串行比例,(1-F)表示并行比例,下标n就是处理器的个数。
导入加速比公式,也就是T1/T_n,也就是
T_n=T1(F+1/n(1-F)),公式只是进行简单介绍。

从公式可以看出,加速比是和串行比例F成反比的,从公式可以看出增加cpu的个数仅仅是一种提供加速比的方法,增加cpu个数的同时,还可以提供降低串行比例来做,也就是串行比例F越低,加速比也就越高

Gustafson定律
Custafson公式也是并行的一个比较重要的公式,现在介绍一下Custafson公式的推导。

定义一下串行执行时间为a,并行执行时间为b。即单核CPU情况,执行时间为a+b总执行时间为a+nb,n表示CPU个数。

//定义串行比例
F=a/(a+b)

//得到加速比
s(n)=a+nb/a+b=a/a+b + nb/a+b = F + n*(b-a+a)/a+b = F + n(1-F)

从公式可以看出,如果串行比例足够小的情况,加速比其实就是约等于处理器个数,也就是说通过加多CPU的个数就能提高加速比。

两个公式看起来似乎有点矛盾,其实不然,两个公式只是从不同角度分析问题。Amdahi是说在串行比例一定时,通过加CPU的方法是有上限的,通过降低串行比例同时增加cpu个数可以提高加速比。Custafson是说在串行比较趋于很小的情况,从公式可以看出,加cpu就可以提高加速比
——————— 
并行的两个重要定律摘自原文:https://blog.csdn.net/u014427391/article/details/85019834 

 

今天的文章并发和并行的区别_生活中并发和并行的例子[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/78422.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注