随着处理器数量的增加,执行时间如何急剧下降(超过预期)?

时间:2015-07-23 11:17:44

标签: parallel-processing f# multicore

我使用" Parallel.For"并行执行我的程序5000000次。来自F#。 每项任务的平均执行时间如下:

活动核心数:执行时间(微秒)

2:866

4:424

8:210

12:140

16:106

24:76

32:60

提供了这个事实,

通过加倍核心数,我们可以获得的最大加速比应该小于2(理想情况下可以是2)。

这可能是造成这种急剧加速的原因。

1 个答案:

答案 0 :(得分:0)

  • 2 * 866 = 1732
  • 4 * 424 = 1696
  • 8 * 210 = 1680
  • 12 * 140 = 1680
  • 16 * 106 = 1696
  • 24 * 76 = 1824
  • 32 * 60 = 1920

因此,当您增加并行性时,相对性能会提高然后开始下降。这种改进可能是由于JIT编译等开销成本或管理并行化的算法的摊销。

随着并行度的增加,降级通常是由于某种资源争用,过多的上下文切换等。