代码改变世界

计算机学科技术前沿:有关Amdahl定律

2013-04-14 16:49  我回答的  阅读(430)  评论(0编辑  收藏  举报

    一、Amdahl定律
    并行计算中的加速比是用并行前的执行速度和并行后的执行速度之比来表示的,它表示了在并行化之后的效率提升情况。阿姆达尔定律是固定负载(计算总量不变时)时的量化标准。可用公式:
                   
来表示。上式中,计算机执行某个任务的总时间可被改进部分的执行时间所占百分比,记为f。可被改进部分采用改进措施后比没有改进前性能提高倍数,记为m。
    二、Amdahl定律的应用
    提高处理机的性能:
    1、增加处理机的核心个数
    改进后系统的加速比:1/[(1-f)+f/n]
    其中f为系统可并行执行部分的执行时间占总系统执行时间的百分比
    n为处理器核心的增加倍数。而1-f则为串行部分部分的执行时间所占百分比。
    2、提高处理机单一核心的频率
    在这种情况之下,我们仅仅提高其中一个核心的频率,而其他核心保持不变。上式中n变为核心的频率提高倍数。

    而当f>0.5,我们发现只有增加核心的个数才能有效的提高处理器的性能。
    当f<0.5时,采用第二种办法,即提高单一核心的频率才能有效提高性能。

    三、多核处理器
    日常使用的最最基本的程序——操作系统——是支持并行处理的,所以,当在多核处理器上同时运行多个单线程程序的时候,操作系统会把多个程序的指令分别发送给多个核心,从而使得同时完成多个程序的速度大大加快。另外,虽然单一的单线程程序无法体现出多核处理器的优势,但是多核处理器依然为程序设计者提供了一个很好的平台,使得他们可以通过对原有的单线程序进行并行设计优化,以实现更好的程序运行效果。虽然多核处理器可以高效解决我们现代化生活中的许多问题,可编程性是多核处理器面临的最大问题。一旦核心多过八个,就需要执行程序能够并行处理。尽管在并行计算上,人类已经探索了超过40年,但编写、调试、优化并行处理程序的能力还非常弱。多核处理器的出现增加了并行的层次性能使得并行程序的开发比以往更难。然而当前业内并无有效的并行计算解决方案,无论是编程模型、开发语言还是开发工具,距离开发者的期望都有很大的差距。自动的并行化解决方案在过去的30年间已经被证明基本是死胡同,但传统的手工式的并行程序开发方式又难以为普通的程序员所掌握。Intel、微软、SUN、Cray等业内巨头正投入大量人力物力进行相关的研究,但真正成熟的产品在短期内很难出现。可扩展性是云计算时代并行计算的主要考量点之一,应用性能必须能随着用户的请求、系统规模的增大有效的扩展。