Microsoft Visual Studio 并行编程基础(一)Windows应用程序加速定律
2014-07-07 23:33
453 查看
加速(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
并行代码线性加速具有以下限制:
1、串行代码
2、并行开销
3、同步
4、顺序输入/输出
一、阿姆德尔定律:
预测加速在设计、基准评测以及测试并行应用程序是很重要。当然这也有计算加速的公式。其中一个公式是阿姆德尔定律。吉恩 阿姆德尔在1967年新建了阿姆德尔定律,用以计算并行应用程序的最大加速。
阿姆德尔定律基于三个变量来计算并行代码的加速:
1、在单核机器上运行应用程序的持续时间
2、并行应用程序的百分比
3、处理器内核的数量
下面是公式,它返回单核对多核性能的比率:
该公式以应用程序在单核机器上的持续时间为基准。
公式中的分子代表基础持续时间,总是等于1。计算的动态部分在分母。变量P是并行应用程序的百分比,N是处理器内核的数量。
二、古斯塔夫森定律:
约翰 古斯塔夫森和爱德华 巴西斯在1988年退出了古斯塔夫森定律,与阿姆德尔定律形成竞争关系。但是,阿姆德尔定律预测CPU添加到计算环境之后的性能。这被称为“加速”,代表性能增益。然而在现实世界中,性能增益有时会改变用途,阿姆德尔定律没有考虑到这种问题,相反,他假设App的并行和串行是一种固定的关系。应用程序可以分割为顺序和并行部分。当其他处理器被添加后,阿姆德尔定律会保持这种比例。串行和并行部分各自保持一半。但是,在现实世界里,随着计算能力的提高,完成的工作更多,所以顺序部分的相对持续时间减少。此外,阿姆德尔定律没有考虑调度、管理和执行并行任务所需要的开销。然而古斯塔夫森定律则考虑了这些因素。
下面是古斯塔夫森定律计算加速的公式:
在上面的公式中,S是App中串行代码的百分比,N是处理器内核的数量,On是来自并行代码的开销。
2014-07-07
相关文章推荐
- 70-316 使用Microsoft Visual C# .NET and Microsoft Visual Studio .NET 开发及实现基于Windows的应用程序 考点整理
- 如何在Windows环境下安装OpenCV,并且在Microsoft Visual Studio 2010中使用OpenCV编写应用程序
- Microsoft Visual Studio 2005 无法调试应用程序的解决方法
- Installing C++ Boost on Microsoft Windows for Visual Studio .NET 2003/2005/Orcas
- 安装Microsoft Visual Studio 2005 Extensions for Windows Workflow Foundation的工具箱控件丢失问题解决~~
- Windows Live Tools for Microsoft Visual Studio 发布
- 在 Windows XP Professional 上用 Visual Studio .NET 编写应用程序
- [微软云计算]Quick Lap around the Windows Azure Tools for Microsoft Visual Studio
- Microsoft Visual Studio 2008的CrystalReports安装在Windows 2003
- Windows Azure SDK 1.5、Windows Azure Tools for Microsoft Visual Studio 2010和新的服务管理功能发布了
- 关于 Microsoft Visual Studio 2005 无法调试应用程序的解决方法 (downmoon)
- 下一版本Windows® CE 开发工具Smart Device Extensions for Microsoft Visual Studio® .NET
- 关于 Microsoft Visual Studio 2005 无法调试应用程序的解决方法
- 谁说用Azure就一定要Vista/Win7?Window2003/xp下安装 Windows Azure Tools for Microsoft Visual Studio
- Microsoft® Visual Studio® 2005 Extensions for Windows Workflow Foundation
- 下一版本Windows® CE 开发工具Smart Device Extensions for Microsoft Visual Studio® .NET
- 在 Windows XP Professional 上用 Visual Studio .NET 编写应用程序
- 在 Windows XP Professional 上用 Visual Studio .NET 编写应用程序
- 从 ASP.NET 应用程序调用 Microsoft Visual Basic 6.0 DLL 时,使用 Microsoft Visual Studio .NET 本机调试器调试它
- 下一版本Windows® CE 开发工具Smart Device Extensions for Microsoft Visual Studio® .NET