parallel processing - how the execution time drops sharply (more than expected) as the number of processors increase? -


i executing programme 5000000 times in parallel using "parallel.for" f#. average execution time per task given below.

number of active cores : execution time (microseconds)

2 : 866

4 : 424

8 : 210

12 : 140

16 : 106

24 : 76

32 : 60

provided fact,

by doubling number of cores, maximum speedup can get, should less than 2 (ideally can 2).

what can reason sharp speedup.

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

so increase parallelism, relative performance improves , begins fall. improvement possibly due amortization of overhead costs jit compilation or in algorithm manages parallelization.

the degradation degree of parallelism increases due sort of resource contention, excessive context switching, or like.


Comments

Popular posts from this blog

javascript - Karma not able to start PhantomJS on Windows - Error: spawn UNKNOWN -

c# - Display ASPX Popup control in RowDeleteing Event (ASPX Gridview) -

Nuget pack csproj using nuspec -