
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习Java编程开发等互联网编程技术,而本文我们就通过案例分析来简单了解一下,Java编程并行效率提高方法都有哪些。
并行加速比(加速比)
加速比的定义是顺序程序执行时间除以计算同一结果的并行程序的执行时间
式中,t_sts为一颗CPU程序完成该任务所需串行执行时间;t_ptp为n颗CPU并行执行完成该任务所需时间。由于串行执行时间t_sts为n颗CPU并行执行完成该和并行执行时间t_ptp有多种定义方式。这样就产生了五种不同的加速比的定义,即相对加速比、实际加速比、绝对加速比、渐近实际加速比和渐近相对加速比。
并行效率(效率)
在实际应用中,影响并行加速比的因素主要是串行计算、并行计算和并行开销三方面。一般情况下,并行加速比小于CPU的数量。但是,有时会出现一种奇怪的现象,即并行程序能以串行程序快n倍的速度运行,称为超线性加速比。产生超线性加速的原因在于CPU访问的数据都驻留在各自的高速缓存Cache中,而高速缓存的容量比内存要小,但读写速度却远高于内存。
衡量并行算法的另一个主要标准是并行效率,它表示的是多颗CPU在进行并行计算时单颗CPU的平均加速比。
理想并行效率为1表明全部CPU都在满负荷工作。通常情况下,并行效率会小于1,且随CPU数量的增加而减小。
伸缩性
伸缩性用于度量并行机器高效运行的能力,代表跟处理器数量成比例的计算能力(执行速度)。如果问题的规模和处理器的数量同时增加,性能不会下降。
阿姆德尔定律(Ahmdal’slaw)
阿姆德尔定律广泛使用于处理器设计和并行算法设计。它指出程序能达到的大加速比被程序的串行部分限制。$S=1/(1-p)$中1-p1−p指程序的串行部分。它的意思是,例如一个程序90%的代码都是并行的,但仍存在10%的串行代码,那么系统中即使由无限个处理器能达到的大加速比仍为9。
古斯塔夫森定律(Gustafson’slaw)
古斯塔夫森定律在考虑下面的情况之后得出的:
当问题的规模增大时,程序的串行部分保持不变。
当增加处理器的数量时,每个处理器执行的任务仍然相同。
古斯塔夫森定律指出了加速比S(P)=P-\alpha(P-1)S(P)=P−α(P−1),PP为处理器的数量,SS为加速比,\alphaα是并行处理器中的非并行的部分。作为对比,阿姆德尔定律将单个处理器的执行时间作为定量跟并行执行时间相比。因此阿姆德尔定律是基于固定的问题规模提出的,它假设程序的整体工作量不会随着机器规模(也就是处理器数量)而改变。古斯塔夫森定律补充了阿姆德尔定律没有考虑解决问题所需的资源总量的不足。古斯塔夫森定律解决了这个问题,它表明设定并行解决方案所允许耗费的时间的佳方式是考虑所有的计算资源和基于这类信息。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。