Multiprocessing power without the expense

Before you read on, heed this warning: Do not try to assemble your own mission-critical server. You are better off purchasing a system from a mainstream hardware vendor to run mission-critical applications. Vendors can address your support, repair, and parts needs for systems you purchase from them, but you're responsible for providing support, repair, and parts for a server you build. Most organizations don't want to risk running essential applications on home-built systems.

Despite this warning, you have plenty of opportunities to roll up your sleeves and build a server. Non-production test systems; servers that aren't mission-critical, such as print servers; and even some infrastructure servers, such as Dynamic Host Configuration Protocol (DHCP) or routing servers, can be candidates for low-cost, build-it-yourself platforms.

Building your own dual-processor Windows NT server costs about the same as buying a high-end single-processor machine, plus a couple hundred dollars for the second CPU. You need the same Error-Correcting Code (ECC) RAM, SCSI disk subsystem, video subsystem, and incidentals (including the case, keyboard, and mouse) for single- and dual-processor systems. If you're upgrading a system rather than building the server from scratch, you can salvage many of these components from the existing machine. The only components you definitely must buy are a new motherboard and at least one CPU.

Mother of All Choices
Multiprocessor motherboards are similar to single-processor motherboards, but multiprocessor motherboards include additional circuitry to support symmetric multiprocessing (SMP) and an additional socket for a second CPU. Different SMP motherboards offer a variety of extras, such as onboard SCSI adapters, video adapters, and sound cards.

Before you select extra features for your motherboard, you must decide whether you want to use Pentium, Pentium Pro, or Pentium II processors. You must choose Pentium-class CPUs­ Advanced Micro Devices (AMD) and Cyrix CPUs won'twork on a multiprocessor NT system.

Pentium-class processors can use Advanced Programming Interrupt Controller (APIC), Intel's chipset standard for SMP technology. AMD and Cyrix processors use a different standard, OpenPIC, which NT doesn't currently support. Table 1, page 82, lists several multiprocessor Pentium, Pentium Pro, and Pentium II motherboards you can choose from and includes each motherboard's feature set.

If you want to upgrade a single-Pentium machine, your cheapest option is to upgrade to a dual-Pentium system. Many mail-order establishments sell 200MHz Pentium CPUs for less than $200 and dual-Pentium motherboards cost only marginally more than single-Pentium motherboards. Without memory, onboard SCSI cards or NICs, or other extra components, dual-Pentium mother-boards range in price from $175 to $300.

If you want to maximize your CPU power, you'll be interested in the Pentium II processor. This solution is expensive. The fastest Pentium II CPUs (333MHz) cost more than $700 each from mail-order firms, and at least $800 from local suppliers. In addition, the Pentium II platform currently lacks scalability; only two CPUs fit on multiprocessor Pentium II motherboards. Don't build a dual-Pentium II system if you might need to add more CPUs to your server within the foreseeable future.

If you want a reasonable compromise between slow, inexpensive Pentium processors and fast, high-cost Pentium II processors, you can build a multi-Pentium Pro server. The fastest Pentium Pro processor is 200MHz, with a 512KB Level 2 cache. Independent lab tests have demonstrated that 200MHz Pentium Pro processors perform application- and file-server functions only marginally slower than 300MHz Pentium II CPUs, presumably because of the Pentium Pro processor's faster Level 2 cache. You can purchase a 200MHz Pentium Pro processor with a 256KB Level 2 cache for about $500. The same CPU with a 512KB Level 2 cache costs roughly $200 more.

The disadvantage of implementing a Pentium Pro SMP solution is that Intel has announced it will discontinue Pentium Pro processor production, and many motherboard vendors are phasing out production of Pentium Pro motherboards. You'll probably have trouble upgrading a dual-Pentium Pro system to include more processors in the future. In addition, you might not be able to replace existing parts, so a motherboard failure could leave you stuck with two or more orphaned CPUs.

After you decide which CPU platform you want to use, you need to evaluate the features available on motherboards designed for that platform. Some motherboards include a built-in VGA port for connecting a monitor. Many motherboards include an onboard Adaptec SCSI controller for connecting SCSI devices internally. In addition, some high-end Pentium and Pentium Pro motherboards provide multiprocessing power through a backplane and daughterboard. The daughterboard contains the CPU circuitry, so the next time you want to upgrade your system, you just replace the daughterboard. The backplane is similar to a typical motherboard, except that it has a special expansion slot where the daughterboard plugs in. The only problem with this configuration is that the backplane's expansion slot for the daughterboard might cramp your PCI, EISA, or Accelerated Graphics Port (AGP) expansion slots or reduce the number of expansion slots the backplane can hold.

Evaluate the motherboards available for the platform you're considering, and determine which features are important to you. Each feature adds value, but it also increases the motherboard's price, and it might require you to purchase additional hardware. If you don't need a feature, you're better off buying a motherboard without it.

Extra Hardware
To upgrade a system from one CPU to two CPUs, you might need to install replacement RAM. If you are running a single-processor NT server, you probably have 72-pin Enhanced Data Output (EDO) SIMMs, or perhaps 72-pin fast-page-mode SIMMs with parity. If the new server's reliability is paramount, you'll require ECC SIMMs. RAM prices fluctuate daily, but you can estimate your RAM costs based on the current price for a 64MB ECC SIMM, $140.

You might need to upgrade your RAM even if you don't require ECC SIMMs. Most dual-processor Pentium II motherboards use Synchronous DRAM (SDRAM) or DIMMs (168-pin memory chips that resemble SIMMs but are longer). You'll pay only a few dollars more for one of these chips than for a 72-pin SIMM with the same memory capacity.

In addition, if you upgrade to a Pentium II system, you'll probably have to replace your system case. Most dual-Pentium II systems use the new ATX footprint. ATX is not compatible with existing Pentium cases; therefore, you'll need to spend another $100 on a case to upgrade to a dual-Pentium II system.

This New System
Physically putting together a dual-processor system is no different than constructing a single-processor system. You open the case, install the motherboard, adjust jumper settings, install the CPUs, install the drives and other peripheral cards, and put everything back together. To measure how difficult building an SMP server is, I threw on a plaid wool shirt, broke out my toolkit, and became the Norm Abram of the SMP server world.

I contacted a local hardware distributor with whom I have a good working relationship. A distributor can provide you with information about which motherboards are on the market, the features each motherboard offers, and which server components you need to upgrade. I contacted seven motherboard manufacturers that my distributor recommended and obtained product samples to build my server. ASUSTeK (ASUS), M Technology, American Megatrends (AMI), Micronics Computers, Tyan Computer, SUPERMICRO Computer, and EPoX Computer provided dual-Pentium II motherboards. Micronics and Tyan also provided dual-Pentium Pro motherboards. The Micronics, SUPERMICRO, and ASUS motherboards were the easiest to work with, in that order.

I gutted an Acer America 133MHz Pentium clone. I salvaged the unit's 1MB VGA card, SMC ISA Ethernet card, Adaptec 2940 SCSI disk controller, 3.5" drive, and Quantum 4GB hard disk. I replaced the unit's 4X CD-ROM drive with a new 24X CD-ROM drive. I purchased two 300MHz Pentium II CPUs and 128MB in SDRAM. I also bought a case to accommodate the ATX form factor.

I assembled my test system using the Micronics dual-Pentium II motherboard. During the assembly, I faced a few problems. I accidentally destroyed my 3.5" drive, so I had to purchase another one. My 1MB video card flickered noticeably on the new system, so I upgraded to a Matrox Mystique 220, which solved the problem.

I added a Sound Blaster-compatible sound card, which requires IRQ 5 or IRQ 10. The motherboard's Universal Serial Bus (USB) ports require IRQ 5, so the sound card consumed IRQ 10. Unfortunately, my Ethernet card requires IRQ 10, so my network card wouldn't work after I installed the sound card. I had to replace the SMC Ethernet card with a new PCI Ethernet combo card that uses the upper IRQs. The entire upgrade, including a couple trips to the distributor for additional parts, took 6 hours.

Reboot and Go?
Throughout the upgrade process, NT never choked. After my initial upgrade, I replaced the Micronics motherboard with each of my other test motherboards. I had problems booting four of the motherboards, but I resolved these problems by adjusting CMOS settings (e.g., I disabled the onboard SCSI controller and manually modified the PCI cards' IRQ assignments). After I switched video cards and network drivers and adjusted CMOS settings, each motherboard booted NT Server 4.0 without a problem.

Nevertheless, I had to sort out my new server's NT configuration. If you create a multiprocessor NT server from scratch, you must perform a full NT installation so that you won't encounter any problems. However, if you upgrade an existing NT server from one processor to two or more processors, you'll face a configuration problem.

When I installed NT on the single-processor server I upgraded for this test, NT recognized that I wasn't running an SMP platform and automatically installed the single-processor NT kernel configuration. My hardware upgrades didn't change the NT operating system (OS), so when I rebooted the server with the new motherboard and second processor, NT didn't recognize the second processor.

I could have reinstalled NT to correct this problem, but instead I used the uptomp.exe utility in Microsoft Windows NT Server 4.0 Resource Kit. UPTOMP upgrades a server's OS from a single-processor to a multiprocessor configuration. (The utility is in the Config section of the NT Server 4.0 resource kit. You can also find it in the I386\Config directory of Microsoft Windows NT Server 3.51 Resource Kit.) A text file in the resource kit explains how to use the utility. UPTOMP is simple, but you must be careful when you run it. You must provide UPTOMP with a path to the hardware abstraction layer (HAL) you want to install. If the path is wrong or you select the wrong HAL, the mistake might render your system unbootable.

Fantastic Cost Savings
My upgrade cost more than I expected. The 24X CD-ROM drive cost $90, and the new 3.5" drive, Ethernet card, video card, and sound card added roughly $500 to the test price. Still, I built my dual-processor NT server for less than $3000.

You might be able to build a dual-300MHz Pentium II system for even less. You can reduce your costs dramatically by salvaging existing system components, including video cards, hard disks, 3.5" drives, network cards, and sound cards. My system's motherboard, CPUs, case, and RAM cost only $2320 (as Table 2 shows, page 83). You can reduce your costs even further by purchasing a dual-processor motherboard without extras such as onboard RAID and SCSI controllers.

Transforming a server you already have into a high-powered SMP machine will save you money over buying a new server. You can upgrade to dual 300MHz Pentium II processors for less than $2500 and upgrade to a dual-200MHz Pentium Pro platform for slightly less. Either option saves you money. SMP servers from major manufacturers can cost $10,000 or more, so $2500 for a major system upgrade is money well spent.