(Symmetric MultiProcessing) A multiprocessing architecture in which multiple CPUs, residing in one cabinet, share the same memory. SMP systems provide scalability. As business increases, additional CPUs can be added to absorb the increased transaction volume.|
SMP systems range from two to as many as 32 or more processors. However, if one CPU fails, the entire SMP system is down. Clusters of two or more SMP systems can be used to provide high availability (fault resilience). If one SMP system fails, the others continue to operate.
A Pool of Resources
One of the CPUs boots the system and loads the SMP operating system, which brings the other CPUs online. There is only one instance of the operating system and one instance of the application in memory. The operating system uses the CPUs as a pool of processing resources, all executing simultaneously, either processing data or in an idle loop waiting to do something.
Whatever Can Be Overlapped
SMP speeds up whatever processes can be overlapped. For example, in a desktop computer, it would speed up the running of multiple applications simultaneously. If an application is multithreaded, which allows for concurrent operations within the application itself, then SMP will improve the performance of that single application.
Sequent, Pyramid and Encore pioneered SMP on Unix platforms. SMP servers are also available from IBM, HP, NCR, Unisys and others. Many versions of Unix as well as Windows NT/2000, NetWare and OS/2 have been designed for or have been revamped for SMP. Contrast with MPP. See also NUMA.
In SMP, CPUs are assigned to the next available task or thread that can run concurrently. In MPP operation, the problem is broken up into separate pieces, which are processed simultaneously.