10 years of multiprocessor computing

It’s been 10 years since I added a second processor to the computer I built for college, which was my first multiprocessor computer. Now, almost every desktop or laptop computer you buy has a multicore processor, but back then it was a total rarity.

The specs for my first machine seem quite mundane compared with what exists today, but this machine was totally awesome for the time. As this was my college computer, my parents helped out with it some, but I also paid for a good deal of it from summer jobs and savings - at this time in my life, building a computer from scratch and having it work well was my pride and joy:

  • Tyan Titan ATX S1668 motherboard
  • Pentium Pro 200Mhz, with 256kb onboard cache
  • 64MB of ECC EDO RAM
  • Mylex dual channel fast SCSI-2 card (2x 20MB/sec channels)
  • Micropolis 4GB Tomahawk 7200RPM hard disk
  • SCSI CD-ROM
  • Matrox Millenium 8MB video card
  • Iiyama 17″ trinitron (Sony tube) monitor

To give you an idea of what the computer options out there were in the summer of 1997, the Pentium II had just come out, and there were very few good multiprocessor motherboards available and it had a huge price premium because of it’s newness. The PII also ran it’s cache at half the processor speed, whereas the Pentium Pro ran it at the full speed, so the PPro 200Mhz was often faster in cache-intensive tasks than a comparable PII 233Mhz.

I bought this machine for running Linux, and so the Pentium Pro’s poor 16 bit performance that pushed Windows 95/98 users away from it wasn’t a concern for me. The original Pentium was still out there, but the price/performance ratio wasn’t as good as the Pentium Pro, and the motherboard chipsets
that existed for it had tradeoffs in terms of supported memory or SMP capabilities.

The peripheral devices I had were also a bit exotic. When I bought it, I had no idea that Micropolis had just gone under, so the warranty on my hard disk was pretty much moot at time of purchase. On the upside, I never had trouble with it, and it was very fast compared to the IDE disks on the market, which had generally horrible performance on a multitasking operating system.

The Matrox Millenium was probably the part I was most proud of. It was fast, well supported by X11, and had 8MB of VRAM. This was a time before 3D acceleration was common - the first functional 3D card, the 3dfx Voodoo 1 was available about this time, and only had 4MB of RAM split between framebuffer and texture storage (some manufacturers made 6MB Voodoo 1 cards with 4MB of texture storage - those were hot items). The Millenium was able to run the Iiyama monitor at 1600×1200 resolution, which frankly was fuzzy and tiny, but at the time I didn’t mind much - having a lot of pixels meant a lot of xterms on screen. This card cost about $400 at the time, and was the most I’ve ever spent on a video card.

When I first assembled that machine, I only had enough money for one processor - back them a 200Mhz Pentium Pro ran about $500. In the summer of 1998 (thus the 10 years in the title), I had enough money to buy another Pentium Pro - by this time the PII was established as the dominant processor architecture, and the prices on a PPro had dropped to more reasonable levels. I was running Redhat Linux at the time, and if you compiled it from source, the 1.3 kernel series finally had somewhat decent SMP performance rather than single lock over all the kernel.

Later on, when the Pentium Pro was nearly obsolete I bought two 1MB cache processors, which were a slight performance boost, and upgraded the RAM to 256MB. I still have most of the parts to this machine lying around somewhere.

The multiprocessor boost was much more noticeable back then - on a single processor system, you’d hit the “performance wall” when running more than one process. This was mainly due to the fact that most systems would only interrupt the running process 100 times a second or so (see discussions of setting the “hertz” in the linux kernel), which resulted in a degradation perceived performance. Having a second processor lessened this to a great deal - once you were running a few processes, it didn’t feel like you hit as much of a wall - performance tended to degrade more gracefully. Things would get slower but they wouldn’t chug.

This machine was my main machine for all of college - eventually I bought a laptop, but for the most part I didn’t really need more. Having that second processor extended the life of the machine to nearly 6 years. For this reason, I’m thinking a lot of the current crop of multicore computers are going to easily last 5-7 years (especially the AMD64 processor architecture ones with 4+ GB of memory support), much longer than the 3-5 year lifecycle that their single processor predecessors had.

That computer was a fun adventure, and a total joy to cut my computer building teeth on. I kinda miss it.


About this entry