Chapter 1: Q15P (page 59)
When a program is adapted to run on multiple processors in a multiprocessor system, the execution time on each processor is comprised of computing time and the overhead time required for locked critical sections and/or to send data from one processor to another.
Assume a program requires t = 100 s of execution time on one processor. When run p processors, each processor requires t/p s, as well as an additional 4 s of overhead, irrespective of the number of processors. Compute the per-processor execution time for 2, 4, 8, 16, 32, 64, and 128 processors. For each case, list the corresponding speedup relative to a single processor and the ratio between actual speedup versus ideal speedup (speedup if there was no overhead).
Short Answer
The answer is listed below for each case:
Processor number | Execution Time | Speed-up | Speed-up without the overhead | Ratio |
2 | 54 | 1.85 | 2 | 0.925 |
4 | 29 | 3.45 | 4 | 0.8625 |
8 | 16.5 | 6.06 | 8 | 0.7575 |
16 | 10.25 | 9.76 | 16 | 0.61 |
32 | 7.125 | 14.04 | 32 | 0.43875 |
64 | 5.5425 | 18.05 | 64 | 0.281875 |
128 | 4.78125 | 20.92 | 128 | 0.1634375 |