我使用" Parallel.For"并行执行我的程序5000000次。来自F#。 每项任务的平均执行时间如下:
活动核心数:执行时间(微秒)
2:866
4:424
8:210
12:140
16:106
24:76
32:60
提供了这个事实,
通过加倍核心数,我们可以获得的最大加速比应该小于2(理想情况下可以是2)。
这可能是造成这种急剧加速的原因。
答案 0 :(得分:0)
因此,当您增加并行性时,相对性能会提高然后开始下降。这种改进可能是由于JIT编译等开销成本或管理并行化的算法的摊销。
随着并行度的增加,降级通常是由于某种资源争用,过多的上下文切换等。