Before you consider buying a SMP system it is definitely wise to think about where you’ll be using the system for, as that 2nd CPU isn’t automatically, or rather automagically, going to speed up your system or the applications you use. The first requirement is that the OS, Operating System, is able to use the 2nd CPU, in order to do that it has to have a SMP kernel. Operating systems that are SMP aware are Windows NT 4.0, Windows 2000 Pro and Windows XP Pro and naturally a whole series of Unix and Linux distributions that we won’t discuss in greater detail here. SMP, Symmetric Multi-Processing, support simply means that two CPU’s can be used to speed up processing within the OS or a specific application, so in theory we could significantly increase performance. In reality we’ll never see the 100% performance increase some people expect as not every application is able to efficiently use the 2nd CPU or the OS can only speed up parts of a process by using the 2nd CPU. Furthermore both CPU’s share the same system bus and all system resources so they don’t have the full system bandwidth at their disposal.
Fig 1. Dual channel RDRAM as featured on the Iwill DP400 dual Intel Xeon motherboard, offering 3.2GB/s of bandwidth.
Apart from having a SMP aware OS the application that we want to use has to be multithreaded in order to profit from the 2nd CPU. Multithreading simply means that parts of an application can be processed in parallel by both CPUs, and thus will be processed faster than with a single CPU. Suppose we have an application that is multithreaded, for example Adobe Photoshop and we want to apply a filter to an image we’re working on. Both CPUs will now handle part of the processing and the filter will applied much faster; it is like moving to a new house and having two trucks at your disposal instead of one, this way around you can get the moving job done much quicker. But there’s more, a dual CPU system can schedule applications among the two CPUs much more efficiently, for example when one CPU is taxed to 90% and the other to just 10%, launching a new application will automatically have the OS assign that to the least taxed CPU. As a result the system is much better able to keep on working efficiently and to the user that translates into a system that is able to do a higher workload without noticeably slowing down.
Fig 2. Iwill's DP400 with two 1.8GHz Xeons with Prestonia core, which feature 512Kb cache and Hyper Threading for enhanced performance.
But overall there are two requirements that have to be met in order for someone to make efficient use of a dual CPU system, the first one is the need for a SMP aware OS, as we already mentioned Windows NT, Windows 2000 and Windows XP Pro offer support for a 2nd CPU through their SMP kernel. Windows XP Pro has our preference here as it incorporates support for the latest technologies such as Intel’s HyperThreading. The second requirement is that the application(s) used is (are) multi-threaded, when it is (they’re) not we’re not making efficient use of the 2nd CPU and generally aren’t any faster than a single CPU system. If one or both of these requirements aren’t met, we will not see much, if any, benefit from using a SMP system and are better off buying a single CPU system. If the higher workload capacity is of importance a better approach is to outfit a single CPU system with faster parts than to opt for a dual CPU solution as these yield extra performance that is available at all times instead of only when taxing the system to a certain degree.