1. If you have one CPU, and the CPU spends 100% of it's time working on your calculation, then you have "100% utilization". In this case, that's a Good Thing - that's the ideal, best you can do.
2. If you have two CPU's, but your calculation doesn't lend itself to "parallelization" ... then one CPU is 100% utilized (like the above case) ... but the other CPU is 100% idle (because there's nothing for the second processor to do - this particular task can't be split into two, concurrent pieces). Your overall system utilization is only 50% - not so good.
3. Remember - you can't do any more work than you have processors.
If you have one work item ... but it can't be split into two pieces ... then a second CPU gains you nothing.
If you have two CPUs - and your work item CAN be split into two pieces - then both CPUs can be fully utilized (2 CPU x 100% utilization), and the job gets done in half the time. Yay!
If you have two CPUs - and your work can be split into FOUR pieces - you've gained nothing. Because you've still only got two CPU's, and they're both doing everything they can, as fast as they can (that's what "utilization" means - whether or not a system *is* doing as much work as it has *capacity* to do).
You CANNOT do more work than you have CPUs.
4. Finally, anything that either CPU does that's *NOT* part of your calculation ... means that it's going to take LONGER to perform your calculation.
So if you have more processes - then the CPUs are going to spend time servicing the processes (instead of doing your calculation).
All time spent on "system overhead" ... is time spent NOT doing your work ... which means your work is going to take longer.
More processes ... means more overhead ... which means less work.
So the ideal for two CPUs is work that can run in parallel on two processes (or two threads - in Linux, they're the same thing). The ideal for four CPUs is to be able to "parallelize" to four tasks. And so on.
'Hope that helps .. PSM