The state of computing

After reading an AnandTech article today, I'm very happy with how things are moving in the PC world these days. One of my key obsessions in college was parallel computing, which was pretty neat. It was my candidate for a Masters if I went there, but unfortunately at the time parallel computing was extremely math-heavy and I was a solid C student in my math classes; hardly Masters material. So when the PentiumPro came out and could do dual CPU setups I was intrigued and very happy to see it.

These days parallelism is very much alive and kicking, though not in the form we were working on back in college. Back there the assumption was that you'd have n identical CPUs working on a problem. These days in gaming purpose computing you have a specialized CPU doing video computations, a specialized CPU doing physics computations, and a general purpose CPU (or two) doing traffic directing and other unspecific computations. Some systems even have a specialized CPU doing network I/O computations on the LAN card itself.

I know some rendering programs are figuring out how to use the GPU on high-end graphics cards to perform the renders at speed that the Intel/AMD general purpose CPU can't dream of yet. I have to expect that the same is true of the new Physics Processing Units that are going to come out in the not too distant future, though my imagination balks at what things besides games such a nifty toy can be repurposed for. Sound-cards were an early processor off-load, with the digital sound processors they bring into the mix, and that continues to this day. This is all nifty stuff.

And yet, in budget machines it is ALL handled by the one CPU. Perhaps there is a slim GPU on the graphics card, but on a budget machine that's most likely to be built into the chipset than a add-in card. Sound? Chipset. Graphics? Chipset. LAN? Chipset. And if you own a budget machine, chances are real good that you also own a budget printer that also has no internal number crunch capacity and relies on the over-worked CPU to do it all. The time it takes for a dumb ink-jet and a smart laser to start printing is night and day.

However, in the Enterprise server market, parallelism comes in a different flavor than it does in the Gaming PC market. Here the focus is on I/O performance to and from peripherals, mostly the LAN and disk channels. The disk-controllers themselves have significant amounts of intelligence in order to improve efficiency in the I/O channel. The LAN chipsets are intelligent in order to handle such complex things as adapter teaming or failover. Here things are designed so that the Gig-E LAN card can run full tilt at the same time as the Fibre Channel card and not worry about I/O contention on the internal busses. This is one reason why gaming motherboards don't always make good high-performance server motherboards. Memory latency is important in both models, though in the Enterprise Server you're much more likely to run into boards with enough memory slots to get up to and well past the 4GB line.

So yes, parallelism has come! But it isn't the vision of an 8-way box on everyone's desk like it was in 1996. More like a couple of general purpose CPU's and a handful of special purpose CPUs for offloading. Still works!