Most vendors have the facility to allow processes to have CPU affinity. This is where the process runs only on certain CPUs. Indeed, those CPUs can be dedicated to specific tasks. This can be useful when there are processes, such as real-time processes, that require immediate response. It can also help to avoid heavy context switching for busy processes. The length of the communications bus connecting the CPUs is a natural limit to the scalability of SMP machines. As the bus gets longer the interprocessor communication speeds become slower. Add to this the fact that each extra CPU imposes an extra bandwidth load on the bus, increases memory contention, and so on.
These problems eventually cause a tail-off in the CPU scalability curve, reaching a point where the benefit of adding any extra CPUs is negated by the increased overheads. Clearly, the actual scalability of different vendors’ hardware will differ, but all SMP boxes display a tail-off in scalability. Having multiple CPUs available allows operations to be processed in parallel. For example, if the database software supports parallel queries, a single query can be decomposed and its separate parts processed in parallel. This makes query performance scalable. In other words, a given query can be speeded up by throwing more hardware at it. This is crucial, as it makes it possible to run queries today that yesterday would have been considered impossible. It is exactly this software technology, in conjunction with bigger, faster SMP and MPP systems, that is driving the current data warehousing boom.