a multi-processor system cannot "balance the load" in a single application unless it is written specifically to take advantage of multiple processors: ie, by making constructive use of multiple threads. There is no way for any OS to break up a single-threaded process to run simultaneously on multiple processors, since it can't possibly know what pieces can safely run in parallel.
On the other hand, if the OS is running the application on one CPU, it can run many or all other tasks on the second cpu. If there are cpu-intensive I/O processes (such as software DVD or encoding) that are managed by a multi-threaded driver or out-of-process server, you can get a significant boost in actual performance from the system as a whole. This can appear to make a single-threaded application run faster.
On the other hand, if the OS is running the application on one CPU, it can run many or all other tasks on the second cpu. If there are cpu-intensive I/O processes (such as software DVD or encoding) that are managed by a multi-threaded driver or out-of-process server, you can get a significant boost in actual performance from the system as a whole. This can appear to make a single-threaded application run faster.
Comment