parallel processing -当前并行化CPU密集型.NET应用程序的最佳选择是什么?

Translate

这是一个开放式的问题。我应该考虑什么方法?

This question and all comments follow the "Attribution Required."

所有的回答

Translate

第一步是找到并了解问题中的并行性。编写性能好于其替代的单线程代码确实很容易。 “并行编程模式”(亚马逊)是关键概念的精彩介绍。

完成可行的设计后,请开始阅读MSDN Magazine存档中“并发”主题中的文章。(链接),尤其是Jeff Richter所写的任何东西。这些将为您提供Windows和.NET特有的线程结构的基本知识。 (Richter的“通过C#进行CLR处理”中的多线程部分(亚马逊)简短,但很有见地-强烈建议。)

来源
Translate

.NET有一些并行扩展,目前正在测试中,并且可以在Microsoft并行计算开发人员中心。他们有一些有趣的项目,如Parallel foreach和称为PLINQ的LINQ并行版本。有关扩展的一些最佳信息,请参见频道9.

来源
Moses Lee
Translate

我认为,如果考虑到最佳选择,我们还可以包括非.NET专用的并行处理方法。

来源
Translate

@拉森纳

如果您想分支到.NET之外,则有很多关于Intel的讨论。穿线积木这是C ++的并行库。

来源
Translate

有很多选择,最好的解决方案将取决于您要解决的问题的性质。如果您要解决尴尬地平行问题,然后将任务划分和并行化将变得微不足道。在那种情况下,挑战将在于分发和管理所使用的数据。

一些建议是:

来源
上一个问题:
.net -Subsonic Vs NHibernate