我试图通过使用并行扩展使我的计算应用程序更快。我是新手,所以我刚刚用 Parallel.ForEach 替换了主 foreach 循环。但是计算变得更慢了。降低并行扩展性能的常见原因有哪些?
谢谢
我试图通过使用并行扩展使我的计算应用程序更快。我是新手,所以我刚刚用 Parallel.ForEach 替换了主 foreach 循环。但是计算变得更慢了。降低并行扩展性能的常见原因有哪些?
谢谢
只有满足多个条件,您才能通过并行运行获得改进。首先,为什么您可以期望速度提高?
您可以期待性能提升的情况是,例如
如果您有一个内核和许多小操作,则上下文切换和分配管理并行线程所需的资源所需的额外工作可能会超过优势。
如果您描述您的特定情况,我们可以尝试推测为什么在您的示例中速度较慢。
实际上,关于并行计算的 WikiPedia 条目对此有一些很好的信息,请参见http://en.wikipedia.org/wiki/Parallel_computing
你要特别注意阿姆达尔定律。