.NET 3.5-4.0 并行计算的支持

发布时间:2018-09-03  栏目:w88优德官网电脑版  评论:0 Comments

以往底微处理器发展历史中,硬件技术之腾飞,特别是CPU频率的持续增高,总是为软件带来重新胜的性能提升。从386交586,从赛扬到奔腾,每次CPU频率的提升,都带来软件性能的大幅升级,而软件无需开另外改变。如果来客户抱怨你的软件性能不漂亮,我们无需着急,只待升级至还胜频率的CPU就足以了。当单核CPU的频率发展到3G之后,再望上发展就是碰到了技能瓶颈,单中心CPU的向上已经抵达一个顶,硬件厂商不得不改成而向多按芯CPU发展,在同等发芯片中投入两只还多独运算核心,通过着力之加,来增长芯片总的效率。当硬件通过长运算核心来加强性时,由于遭遇其架构的熏陶,软件并无可知尽量地好多独运算核心所带的特性提升,甚至有上性能还具备下跌。在这种状况下,开发者不得不更改应用程序的架和开发方法,以承诺本着这种多按的样子,使得自己之软件可尽利于硬件升级所带来的性质提升。

作晚辈开发平台,Visual Studio
2010加大了针对性互相运算的支持。微软正让尽量生的限量外之开发者都能便捷而便利地进行并行计算的开销,不管他动用的是非托管代码还是.NET
Framework。从而以开发者从麻烦而复杂的多线程开发被解放出来,将再度多之肥力放到业务逻辑上。

  • Visual Studio IDE对并行计算开发之汪洋支撑。Visual Studio
    2010供了一个“并行性能分析器”,它可以辅助我们分析应用程序的习性瓶颈,找到需要并行处理和可以开展并行处理的地方,并坐图形化的样式表现出来。
  • 非托管的C++库和编译器对并行计算的支撑
  • .NET Framework 3.5/4.0
    对并行计算的大气支撑,包括PLINQ、并行语言语句等等

本文讨论的凡.net 3.5/4.0针对性并行计算的特性差别,采用的事例是Visual Studio
2010  Beta2 Training
Kit的Demo代码.
在座谈之前先行想起一下.NET 的相组件:

鉴于并行计算是将一个行事职责进行解释为并作执行,因此,任何一个支持并行计算的软件开发与运作平台都要解决这些出现执行之支行任务中的相互协作问题,比如:

  • 一个子职责需要等其它子任务之完结,多个子任务就后才允许实施下一个子职责(即所谓fork-join),
  • 一个子任务完毕后自动启动多个下级子任务的施行
  • 许一个任务中途取消
  • ……

.NET 3.5/4.0经过对曾有些基类库进行扩展与提高,满足了上述要求。.NET 给
“System.Threading”
命名空间多了有新的接近,同时对一部分已来类似为展开了调以及优化。另外,针对中途取消线程或作务执行就同样实在支出被特别普遍的求,提供了一个联取消模型。最酷之浮动是.NET为基类库提供了大半个与并行计算密切相关的接近,并以她统一称为“并行扩展(Parallel
Extensions)”。

.NET
3.5通过DevLabs发布了Reactive扩展遭含的类库为并行处理提供支持。Reactive扩展目标是简化异步及事件驱动程序的构建,可参照InfoQ的文章微软发布Reactive框架,简化异步及事件驱动编程。下述.net
3.5之例证代码的运转要求下载Reactive扩展。

事先介绍一下自之机器配置,单CPU对审批:

图片 1

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

.net 3.5生的运作结果:

图片 2

.net 4的周转结果:

图片 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

留下评论