Necessity is the Mother of Invention

If this were a perfect world, we would all be completely self sufficient and we would never need to turn to anyone else for help. In reality, there isn't a single person out there that is completely self sufficient, at some point in life you'll have to face the facts and ask for help with at least one task that seems too overwhelming to attack alone.

Let's say you're a professor, and you've got a stack of exams to organize into piles according to grade. Although you could theoretically handle the task by yourself, it would surely expedite things if you had someone else helping you. So what do you do? Pick up the phone and call that assistant of yours, and now, in half the time, you've got a nicely organized section of your last exam. Fortunately, we can apply that same theory to computer hardware, more specifically, processing power.

Let's say your computer is working on a task, calculating the number of 4" wooden blocks that would fit end to end between the sun and the moon. Assuming that the length of such a calculation was beyond the time you had allocated to give that professor from the first example an answer (don't you just hate it when that happens?), you are now stuck with a bit of a dilemma. How can you make your system process that same calculation faster? Well, pick up the phone, call up your local hardware vendor, and place an order for another CPU. Now, in half the time, you've calculated that distance, since the task was split up between your two processors. That is an idealistic case when it comes to multiprocessing systems, however the case was made to prove a point, that the same theory from above can be applied to processing power, which brings us to a new solution for obtaining a faster system: multiprocessor systems.

The Requirements

Before we begin to talk about the wonders of a multiprocessor system we need to get a few requirements and stipulations mentioned in the open.

The first requirement of a multiprocessor system, is of course, a motherboard capable of accepting two or more processors. This requirement stems primarily from the capabilities of the chipset on the motherboard, for example, the Intel 440BX chipset is capable of supporting up to 2 Pentium II processors, with the Intel 450NX chipset supporting up to 4 Pentium II Xeon processors. Higher end Digital and Sun solutions even allow for systems to have up to 64-way multiprocessing capabilities, however you won't find any of those systems selling for anything even remotely affordable for a single user.

The price difference between a single and a dual processor motherboard is generally 30 - 40% due to the added components necessary for a multiprocessor motherboard. You have to remember that there must be some logic on the motherboard itself that will tell which processor to perform what operations, otherwise you'll have two equally powerful processors, with nothing to harness that power.

While on the topic of logic, to put an end to a common misconception now, there is a reason that there are no multiprocessor AMD K6-2 and Cyrix based systems. This reason is that the multiprocessor standard supported by AMD and Cyrix are different that the standard supported by Intel, and as with any conflict of standards, the larger company seems to always win the race. In this case, Intel holds the x86 market, therefore motherboard manufacturers produce motherboards based on their multiprocessor standard.

Secondly, you must have two identical processors. You cannot combine a Pentium II 450 and a Pentium II 350 in a single system, the two processors should ideally be of the same stepping and revision, although the basic requirement is that they are of the same general nature (i.e. two Pentium II 400's). Another misconception, which is often present as a topic in casual hardware discussions, is the proper naming system for a multiprocessor system. If you have a system with two Pentium II's clocked at 400MHz, it is incorrect to refer to the system as a Pentium II 800. That would imply that the system is running at a clock frequency of 800 million cycles per second (MHz) when in actuality, the system is still running at a 400MHz clock frequency, but with two processors. So the proper way of naming a multiprocessor system, such as the one from the previous example would be to indicate the number of processors in the system, as in a Dual Pentium II 400, or a Quad Pentium II 400, etc... Although this may seem like a trivial item to point out, there are a number of users out there that believe otherwise.

The third requirement of a multiprocessor system is an Operating System capable of taking advantage of two or more processors. What does this mean? Well, to put it bluntly, this means that Windows 98 is out of the question for a multiprocessor system. The second processor will simply sit there while the first processor handles the entire load of calculations Windows 98 chooses to throw at it. Windows 98 is not a multiprocessor OS. What does this leave? If you're bound to Windows, then Windows NT is a perfectly fine alternative, as is IBM's OS/2 Warp 4, Linux, Unix, BeOS, and Solaris (the AnandTech server actually runs off of a multiprocessor Solaris based machine) among other operating systems. In order to keep this article simple, we'll only focus on Windows NT based systems, in the future AnandTech may take a look at multiprocessor Linux and BeOS based systems as well.

Those are the three basic requirements for a multiprocessor system, with another stipulation for a high performing multiprocessor system being the active support for multiprocessor systems in your applications. Generally, professional applications such as Photoshop will support multiprocessor systems, however it is always good practice to check with the developer to find out if you'll actually receive any benefit from a multiprocessor system.

Index The Dilemma

Log in

Don't have an account? Sign up now