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
Post a Comment