The old saying, "Many hands make light work," expresses the premise that leads to the development of multiple-processor systems. At any given time, there is a technological limit on the speed with which a single processor chip can operate. If a system's workload cannot be handled satisfactorily by a single processor, one response is to apply multiple processors to the problem.
The success of this response depends not only on the skill of the system designers but also on whether the workload is amenable to multiprocessing. In terms of human tasks, adding "hands" may be a good idea if the task is answering calls to an "800" number, but is dubious if the task is driving a car.
If improved performance is the objective of a proposed migration from a uniprocessor to a multiprocessor system, the following should all be true:
In general, a uniprocessor solution is preferable when possible, because the presence of multiple processors gives rise to performance concerns that are minimal or nonexistent in uniprocessor systems. In particular, if point 2 is not true, the performance of a multiprocessor can sometimes actually be worse than that of a comparable uniprocessor.
Although unchanged single-thread applications normally function correctly in a multiprocessor environment, their performance often changes in unexpected ways. Migration to a multiprocessor can improve the throughput of a system, and sometimes can improve the execution time of complex, multithread applications, but seldom improves the response time of individual, single-thread commands.
Getting the best possible performance from a multiprocessor system requires an understanding of the operating-system and hardware-execution dynamics that are unique to the multiprocessor environment.