www.27111.com并行统计的帮忙

在昔日的微机发展历史中,硬件技术的上进,越发是CPU频率的持续坚实,总是给软件带来更强的性质进步。从386到586,从赛扬到奔腾,每一回CPU频率的升官,都拉动软件质量的小幅度提高,而软件无需做任何变更。倘使有客户抱怨你的软件质量不佳,大家无需着急,只须求升级到更高频率的CPU就可以了。当单核CPU的频率发展到3G之后,再往上前进就遇上了技术瓶颈,单焦点CPU的上扬已经抵达一个巅峰,硬件厂商不得不转而向多核芯CPU发展,在一颗芯片中出席多少个甚至多少个运算宗旨,通过骨干的加码,来拉长芯片总的频率。当硬件通过扩大运算大旨来增进品质时,由于遭遇其架构的震慑,软件并无法尽量地惠及八个运算大旨所带来的性子进步,甚至部分时候品质还有所减退。在那种情状下,开发者不得不改变应用程序的架构和开发方法,以应对这种多核的主旋律,使得自个儿的软件可以即使利于硬件升级所牵动的天性提高。

用作晚辈开发平台,Visual Studio
贰零壹零加大了对相互运算的辅助。微软正在使得尽量大的范围内的开发者都能高效而便利地开展并行统计的支出,不管他利用的长短托管代码照旧.NET
Framework。从而将开发者从麻烦而复杂的多线程开发中解放出来,将越来越多的生机放到业务逻辑上。

  • Visual Studio IDE对并行总括开发的大气支撑。Visual Studio
    贰零零捌提供了1个“并行品质分析器”,它能够协理大家解析应用程序的天性瓶颈,找到须要并行处理和能够展开并行处理的地点,并以图形化的款型呈现出来。
  • 非托管的C++库和编译器对并行总结的支撑
  • .NET Framework 3.5/4.0
    对并行计算的豁达支持,包含PLINQ、并行语言语句等等

正文探讨的是.net 3.5/4.0对并行统计的性质差异,选取的例证是Visual Studio
2010  Beta2 Training
Kit
的德姆o代码.
在议论从前先想起一下.NET 的互动组件:

鉴于并行统计是将一个行事义务展开表明以并发执行,因而,任何1个支撑并行统计的软件开发与运作平台都必须消除这一个现身执行的子任务之间的相互合作难题,比如:

  • 1个子义务急需等待其他子任务的形成,三个子义务已毕今后才同意实施下2个子任务(即所谓fork-join),
  • 3个子职务达成后活动运营七个下级子义务的推行
  • 同意1个职责中途废除
  • ……

.NET 3.5/4.0通过对已有的基类库举行扩张和做实,满足了上述须要。.NET 给
“System.Threading”
命名空间扩张了有的新的类,同时对一部分已有类也展开了调整和优化。此外,针对中途废除线程或作务执行这一其实支付中越发普遍的须要,提供了2个集合废除模型。最大的转移是.NET为基类库提供了八个与并行计算密切相关的类,并将它们统一称为“并行扩充(Parallel
Extensions)”。

.NET
3.5通过DevLabs发布了Reactive扩展中富含的类库为并行处理提供协理。Reactive扩展对象是简化异步及事件驱动程序的打造,可参照InfoQ的稿子微软发布Reactive框架,简化异步及事件驱动编程。下述.net
3.5的事例代码的周转须求下载Reactive扩展

先介绍一下本身的机器配置,单CPU双核:

www.27111.com 1

下边的例证来自Visual Studio 2010  Beta2 Training
Kit
的ParallelBabyNames:

.net 3.5下的运转结果:

www.27111.com 2

.net 4的周转结果:

www.27111.com 3

从上述例子的周转结果来看,.net 4的习性要比.net 3.5要强,.net 3.5和.net
4.0的并行处理能力支撑上着力持平。

Visual studio 2010 and parallel computing for developer resources

http://blogs.msdn.com/hale/archive/2010/03/18/visual-studio-2010-and-parallel-computing-for-developer-resources.aspx

发表评论

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