Parallel Extensions CTP第二版发布

 

Parallel Extensions CTP第二版发布

LazyBee

20086月微软Parallel Extensions项目组发布了Parallel Extendsions CTP的第二个版本。这个版本主要包含以下组件:

1 任务并行库TPL(Task Parallel Library): 提供命令的方式将面向数据的操作以及轻量级的任务自动的运行在并行硬件上,以提高运行速度。

2 PLINQParallel LINQ)提供以声明的方式对数据源进行并行化的查询

3 调配的数据结构CDS(Coordination Data Structures):用于支持作业调配和管理共享状态

 在这版中相对200712月的版本,CDS是新增加的组件。并且在200712月的CTPTPL是建立在原型调度器的基础上的,而这版中的调度器被完全重写,新调度器将更健壮、更有效、和更具扩展性,它使用协调调度和“偷任务”技术来达到更快、更有效和更大CPU利用率的目的。同时也在System.Threading.Tasks.TaskSystem.Threading.Tasks.Future<T>类中通过提供ContinueWith方法来提供了一个新的延续模型,使得新任务能在前一个任务完成时被调度。例如:

Var futureC=Future.Create()(()=>A()).ContinueWith(a=>B(a.value)).ContinueWith(b=>C(b.Value));

另外,在Task类中对应于WaitAll方法增加了WaitAny方法来用于同步;移除了Task的基类TaskCoordinator;也将Parallel.Do改名为Parallel.Invoke.

针对PLINQ,主要是将上一版基于线程池的实现更改为基于TPL来实现。同时更改了排序的使用方式,以前版本是通过ParallelQueryOptions枚举来保留顺序,在这版中这个枚举被删除了,而是使用AsOrdered扩展方法来替代;同时AsUnordered扩展方法也在新版中被提供。AsOrdered或者OrderBy能被使用来确保保留原始顺序,而AsUnordered能被使用在性能比顺序更重要的情况下关闭查询的排序部分。还有就是提供了一些新的扩展象Zip等。

你可以到以下地址http://www.microsoft.com/downloads/details.aspx?FamilyId=348F73FD-593D-4B3C-B055-694C50D2B0F3&displaylang=en去下载这个CTP版本。

原文地址:https://www.cnblogs.com/LazyBee/p/1223989.html