并行扩展工作缓慢的原因

时间:2010-05-28 08:05:47

标签: .net-3.5 parallel-extensions

我试图通过使用Parallel Extensions使我的计算应用程序更快。我是新手,所以我刚用Parallel.ForEach替换了主foreach循环。但计算变得更慢。降低并行扩展性能的常见原因是什么?

由于

1 个答案:

答案 0 :(得分:1)

如果满足许多条件,您只能通过并行运行来获得改进。首先,为什么你会期望提速?

您可以预期性能提升的情况如下。

  1. 如果您有顺序操作等待资源,例如将TCP连接到服务器并下载数据,这可能会更快并行。
  2. 如果您有多个处理器/核心,那么在核心上执行每项任务可能会更快,而不是使用100%的一个核心而不是其他核心。
  3. 如果你有一个核心和许多小型操作,上下文切换和分配管理并行线程所需资源所需的额外工作可能会超过优势。

    如果您描述您的具体案例,我们可以尝试推测为什么它在您的示例中较慢。

    实际上,关于并行计算的WikiPedia条目有一些很好的信息,请参阅http://en.wikipedia.org/wiki/Parallel_computing

    你想特别注意阿姆达尔的法律。