Rambling … why is my dual processor colleague not twice as fast?

Blue And White Robot Holding Hands And Standing With His Son Clipart Illustration 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:
image

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:

image

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:

image

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.