Mah*_*asi 12 c# parallel-processing
我有一个嵌套的for循环.我用a替换了第一个For Parallel.For()并且计算速度增加了.
我的问题是用一个替换第二个(内部一个)Parallel.For().它会提高速度吗?还是没有区别?还是会慢一点?
编辑:
由于核心不是无限制的(通常有2到8个核心),因此内部循环并行运行.所以,如果我用a更改内部Parallel.For(),它再次并行运行.但我不确定它如何改变性能和速度.
pad*_*pad 15
从"太细粒度,太粗粒度"小节,.NET并行计算团队的"并行编程模式"一书中的"反模式"部分:
答案是通过性能测试找到最佳平衡点.如果与正在进行的工作相比,并行化的开销最小,则尽可能并行化:在这种情况下,这将意味着并行化两个循环.如果并行化内部循环的开销会降低大多数系统的性能,那么在这样做之前要三思而后行,因为它最好只能并行化外部循环.
看看那个小节,它是自包含的,并列有平行光线跟踪应用程序的详细示例.并且它建议将循环展平以获得更好的并行度也可能对您有所帮助.
| 归档时间: |
|
| 查看次数: |
9237 次 |
| 最近记录: |