BT

您是否属于早期采用者或者创新人士?InfoQ正在努力为您设计更多新功能。了解更多

使用.NET进行并行编程

| 作者 Abel Avram 关注 4 他的粉丝 ,译者 朱永光 关注 0 他的粉丝 发布于 2010年9月8日. 估计阅读时间: 不到一分钟 | 硅谷人工智能、机器学习、互联网金融、未来移动技术架构 ,尽在QCon上海2017

微软的模式与实践团队(pattern & practices team)最近发表了名为《使用.NET进行并行编程(Parallel Programming with Microsoft .NET)》的技术书籍,此书包含了为.NET编写并行程序的向导。其基本内容囊括了6个针对并行编程的设计模式,以及相应的代码示例。

《使用.NET进行并行编程》力图解决的并行程序中的艰难工作就是:在能够并行运行的多任务中分解问题,协调并行执行的任务,并处理任务间的数据共享来避免同步性的需要所带来的巨大性能影响。为了达成这个目的,本书介绍了6种使用.NET 4任务并行库(Task Parallel Library,TPL)和PLINQ的设计模式:

  1. 并行循环(Parallel Loops)——在需要对多个相似数据输入执行同样操作的时候使用。
  2. 并行任务(Parallel Tasks)——在需要执行每个都具有自己数据输入的不同操作的时候使用。
  3. 并行聚合(Parallel Aggregation)——“并行聚合在算法中引入了特别的步骤用于合并一些不完整的结果。这个模式表示着一种简化(reduction)操作,并包含了一种map/reduce算法的变体。”
  4. 期货(Futures)——用于通过控制流来集成数据流。“期货是最初未知但之后变得可用的计算结果的替代物。对结果进行计算的过程能并行地发生在其他计算过程当中。”
  5. 动态任务并行化(Dynamic Task Parallelism)——即所谓的递归分解,这个模式有助于在计算期间添加动态创建的任务。
  6. 管道(Pipelines)——这个模式把并行任务的概念和并发队列组合起来,让程序能在数据输入之上并发地执行任务,并遵循一定的顺序来处理数据。

每个设计模式都附带有C#VB.NETF#代码示例,都可以在CodePlex上的使用.NET进行并行编程的项目网站上找到。这个项目也提及,模式与实践团队有意为使用并行模式库(Parallel Patterns Library ,PPL)和异步代理库(Asynchronous Agents Library)的C++开发人员,编写此书的姐妹篇。

这个向导还包含了把并行设计模式和其他OOP模式进行集成的建议,如门面模式(Facades)、装饰模式(Decorators)和资源库模式(Repositiories)。并演示如何在Visual Studio 2010中调试和分析并行应用程序。

查看英文原文:Parallel Programming with Microsoft .NET

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

本文是不是用Google翻译翻译出来的 by unco tup

期货(Futures)
门面模式(Facades)

Re: 本文是不是用Google翻译翻译出来的 by 黄 超

虽不中亦不远矣!

Re: 本文是不是用Google翻译翻译出来的 by Lei Da

期货(Futures) 比较雷人

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT