【发布时间】:2010-09-05 07:24:42
【问题描述】:
这是一个开放式问题。我应该考虑哪些方法?
【问题讨论】:
-
什么硬件?如果它是 CPU 密集型的,并且您只有 1 个单核 CPU,那么多线程会降低性能。此外,如果您需要并行处理一组 PC,这与一台 PC 上的多线程是完全不同的。
这是一个开放式问题。我应该考虑哪些方法?
【问题讨论】:
有很多选择,最佳解决方案取决于您要解决的问题的性质。如果您正在尝试解决embarassingly parallel 问题,那么划分和并行化任务将是微不足道的。在这种情况下,挑战将来自分发和管理所使用的数据。
一些建议是:
【讨论】:
@Larsenal
如果您想在 .NET 之外分支,已经有很多关于英特尔的 Threading Building Blocks 的讨论,它是 C++ 的并行库。
【讨论】:
我认为我们还可以将非 .NET 特定的并行处理方法包括在内,如果这些方法是要考虑的最佳选择的话。
【讨论】:
有一些 .NET 的并行扩展目前正在测试中,可在 Microsoft 的 Parallel Computing Developer Center 获得。他们有一些你会期待的有趣的项目,比如 Parallel foreach 和称为 PLINQ 的 LINQ 并行版本。有关扩展的一些最佳信息位于 Channel 9。
【讨论】: