2010-03-17 73 views
17

随着英特尔推出面向桌面的Hexa-Core(6)处理器,看起来我们已经不能再等待微软让多核编程变得“轻松”了。我只是订购了Joe Duffy的书Concurrent Programming on Windows。这看起来是一个很好的开始,但我希望你们中的一些人瞄准多/多核心系统,这些核心系统会指向我一些有助于你的项目的好资源?C#的并行编程模式?


您已经给出了一些很好的答案,但让我补充一下我的意思是“良好的资源”。仅仅因为我们拥有6,12或48个内核并不意味着我们的应用程序将从尝试使用它们中受益。我始终认为,当我们的系统中有大量的内核时,当前的编程范例将发生变化。

我应该阅读哪些博客/书籍以最好地理解模式以及何时使用它们。有没有什么好的播客或网络广播可以提供帮助。


这里有几个环节,我发现有趣:

通常是有用的:

多线程:

+0

我们将在下周的CodePlex上发布上述p&p书籍的前几章的草稿以及下周的样本。 http://parallelpatterns.codeplex.com/ 我们欢迎您对我们正在做的事情提供反馈,请随时查看。 谢谢, 阿德 – 2010-04-09 16:24:13

+0

@Ade:我敢肯定,我们都在热切等待下一个草案,肯定会提供反馈。感谢您保持我们的最新状态。 – VoidDweller 2010-04-09 17:14:50

+0

我们刚刚发布了关于Codeplex前言和第1,2和5章的草案,http://parallelpatterns.codeplex.com/。如果您有时间,我们希望听到您的反馈。 – 2010-04-21 02:00:12

回答

12

这里有一些选择

  • F#有并发代码
  • 并行LINQ和任务在.NET 4中是有用的抽象真的很好的支持。

pfxteam blog在.NET 4

+0

很难打败pfxteam博客。你知道任何C#3.0特定资源吗? – VoidDweller 2010-03-24 04:54:40

+0

我打算说Joe Albahari和Jon Skeet,但你已经在问题中列出他们的帖子:) – 2010-03-24 05:19:05

8

新的并行编程工具的更多信息有一个series of articles励科普塞这是非常全面和广泛​​。它从基本的并行编程原则开始,并继续介绍如何使用.NET4中新的任务并行库实现解决方案。

+0

我已经开始阅读文章,这看起来应该是我们应该考虑的。 – VoidDweller 2010-03-18 20:24:46

+0

@rwwilden:谢谢你的插件。只是想补充一点,它仍然是一项正在进行的工作 - 而且还会有更多的进展。在这一点上刚开始使用任务并行,尽管数据并行性已经很好地刷新了。 – 2010-03-19 17:51:48

4

请注意,在所有这些中,并非您编写的每个应用程序都必然会从并行编程中受益。操作系统已经能够在不同内核上抛弃不同的进程,这意味着你的单线程应用程序已经可以从它不必与其他线程和进程共享内核的事实中受益。

+0

这是一个很棒的斯宾塞点,也是我提出问题动机的重要部分。我编辑了我的问题来反映这一点。 – VoidDweller 2010-03-18 06:38:42

2

我同意布赖恩和rwwilden使用任务并行库。虽然TPL是.NET 4的特色,但如果你的目标是3.5,它可以作为Reactive Extensions for .NET (Rx)的一部分。

+0

Rx看起来非常引人注目,我喜欢它可以与3.5 sp1一起使用。我会研究它,我想知道它是否可以与我们的应用程序捆绑在一起,还是必须安装它。 – VoidDweller 2010-03-18 20:07:52

+0

它可以与您的应用程序捆绑在一起,但请检查上线许可条款。 – 2010-03-20 22:11:22

+0

@Richard:谢谢你的信息。 – VoidDweller 2010-03-22 03:42:10