Microsoft Visual Studio 并行编程基础(一)Windows应用程序加速定律

加速(Speedup)是在多核心CPU机器上运行应用程序(相比单核心CPU机器)所能够预期的性能效益。测量加速时,是以单核心CPU机器的性能为基线。当然,你可能会认为同一个App(应用程序)在双核心CPU上运行的速度比单核心快了两倍,四核心CPU快四倍。但是,这是不正确的。除了一些特例,比如超线性加速,即使整个App都并行运行,线性加速也是不可能的。这是因为总有一些并行应用程序的开销,比如将线程调度到单独的处理器。因此,线性加速是不可实现的。
并行代码线性加速具有以下限制:
1、串行代码
2、并行开销
3、同步
4、顺序输入/输出

一、阿姆德尔定律:
 

预测加速在设计、基准评测以及测试并行应用程序是很重要。当然这也有计算加速的公式。其中一个公式是阿姆德尔定律。吉恩 阿姆德尔在1967年新建了阿姆德尔定律,用以计算并行应用程序的最大加速。
阿姆德尔定律基于三个变量来计算并行代码的加速:
1、在单核机器上运行应用程序的持续时间
2、并行应用程序的百分比
3、处理器内核的数量
下面是公式,它返回单核对多核性能的比率:
 

该公式以应用程序在单核机器上的持续时间为基准。
公式中的分子代表基础持续时间,总是等于1。计算的动态部分在分母。变量P是
并行应用程序的百分比,N是 处理器内核的数量。

二、古斯塔夫森定律:
 

约翰 古斯塔夫森和爱德华 巴西斯在1988年退出了古斯塔夫森定律,与阿姆德尔定律形成竞争关系。但是,阿姆德尔定律预测CPU添加到计算环境之后的性能。这被称为“加速”,代表性能增益。然而在现实世界中,性能增益有时会改变用途,阿姆德尔定律没有考虑到这种问题,相反,他假设App的并行和串行是一种固定的关系。应用程序可以分割为顺序和并行部分。当其他处理器被添加后,阿姆德尔定律会保持这种比例。串行和并行部分各自保持一半。但是,在现实世界里,随着计算能力的提高,完成的工作更多,所以顺序部分的相对持续时间减少。此外,阿姆德尔定律没有考虑调度、管理和执行并行任务所需要的开销。然而古斯塔夫森定律则考虑了这些因素。
下面是古斯塔夫森定律计算加速的公式:
 

在上面的公式中,S是App中串行代码的百分比,N是处理器内核的数量,On是来自并行代码的开销。


2014-07-07

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值