Faced with the task of speeding up a C++ application, you generally have the following options:
Tune your application. Reduce the application's pathlength by optimizing the code. This has been the focus of our discussion up to this point, speeding up a single thread of execution on a uniprocessor (single CPU) machine.
Upgrade processing speed. A faster CPU should result in faster execution for CPU-bound workloads.
Add processors. A multiprocessor machine consists of multiple CPUs. In theory, multiple CPUs should outperform a single CPU of identical speed. This is what scalability is all about.
The scalability challenge facing an application code is to keep up with the additional processing power. When you move an application ...