What is SMP (symmetric multiprocessing)?
SMP (symmetric multiprocessing) is computer processing done by multiple processors that share a common operating system (OS) and memory. In symmetric multiprocessing, the processors share the same input/output (I/O) bus or data path. A single copy of the OS is in charge of all the processors.
SMP systems are better suited for online transaction processing than massively parallel processing (MPP) systems in which many users access the same database in a relatively simple set of transactions. Unlike MPP systems, SMP systems can dynamically balance the workload among computers to serve more users faster.
The SMP computer architecture is a multiprocessor hardware and software architecture that has multiple identical processors. The processors equally share main memory and have access to all I/O devices. Today, most modern OSes support SMP machines. In the past, users had to learn special programming skills to use SMP.
How is SMP used?
Symmetric multiprocessing systems are used primarily in resource-intensive computing environments. These are environments that need a large amount of computing power to execute application tasks and processes. Most multiprocessor systems use SMP architectures.
SMP is most useful for time-sharing systems and multithreading time-sharing systems. Time sharing is the distribution of a computing resource to multiple users at one time. Similarly, multithreading is a central processing unit (CPU) feature that enables multiple, concurrent tasks to be performed in one process. More specifically, multithreading enables multiple instruction threads to execute independently, all sharing the same processing resources.
Time sharing uses SMP, as it distributes computing resources to multiple users and can run multiple processes in parallel. This process is aided by SMP, which is designed to have more than one process running on different processing units. SMP is used in multithreading for the same reason, as multithreading handles multiple processes at one time and SMP divides the threads up to each processor.
SMP, however, is not commonly used in PCs or applications that have not been modified to take multithreaded programming into account. Applications and programs need to be designed to enable multithreading so that threads can be scheduled on different parallel processors.
What are the advantages and disadvantages of SMP?
Advantages of symmetric multiprocessing include the following:
- Increased throughput. Using multiple processors to run tasks decreases the time it takes for the tasks to execute.
- Reliability. If a processor fails, the whole system does not fail. But efficiency may still be affected.
- Cost-effective. SMP is a less expensive way long term to increase system throughput than a single processor system, as the processors in an SMP system share data storage, power supplies and other resources.
- Performance. Because of the increased throughput, the performance of an SMP computer system is significantly higher than a system with only one processor.
- Programming and executing code. A program can run on any processor in the SMP system and reach about the same level of performance, which makes programming and executing code relatively straightforward.
- Multiple processors. If a task is taking too long to complete, multiple processors can be added to speed up the process.
However, SMP also comes with the following disadvantages:
- Memory expense. Because all processors in SMP share common memory, main memory must be large enough to support all the included processors.
- Compatibility. For SMP to work, the OS, programs and applications all need to support the architecture.
- Complicated OS. The OS manages all the processors in an SMP system. This means the design and management of the OS can be complex, as the OS needs to handle all the available processors, while operating in resource-intensive computing environments.
Learn about different server hardware configurations, including more about CPU configurations and how to choose them.