Rambling … why is my dual processor colleague not twice as fast?
This weekend my son asked me a question that had me stumped, forced me to sit in the garden to think (which was a great relief) and to find a way of explaining it to him. Here is the result of my journey, whereby I used the example of adding eight numbers together, which I vaguely remember form material I once read during my studies. My explanation obviously is based in an ideal world, whereby no-one and nothing else is executing on the system, which for simplicity sake (it was also getting cold in Ladner) I defined as an assumption :)
Adding 8 numbers on a single processor
The diagram shows that we ‘theoretically’ require 7 steps for a single processor system to add 8 numbers together:
Adding 8 numbers on a dual processor
The diagram shows that we ‘theoretically’ require 4 steps for a dual processor system to add 8 numbers together:
Adding 8 numbers on a quad processor
The diagram shows that we ‘theoretically’ require 3 steps for a quad processor system to add 8 numbers together:
Summary
What becomes evident at a glance, is that the efficiency and effectiveness of multiple processors depends on the logic processed. In the first step the multiple processors all started running, but from step 2 onwards some were working and some were idling at the beach … in other words the efficiency reduced as the calculation steps proceeded along. The following table shows the ‘theoretical’ speed-up for this silly problem:
Processor | Steps | Speed-Up |
1 | 7 | 7/7=1 |
2 | 4 | 7/4=1.75 |
4+ | 3 | 7/3=2.33 |
In other words we would need a quad to be twice as fast as the single processor system to solve this specific problem domain. Looking forward to the next weekend and the next question from my boys … they can think of and ask the weirdest stuff.