To keep my mind off waiting to hear from Apple regarding my latest iPhone appsubmission I’ve cultivated a renewed interest in High-Performance Computing (HPC); one of my favorite Comp-Sci subjects.

I’ve been interested in HPC almost as long as I’ve been working with computers.  I’ve been trying to think of my earliest exposure to the idea of supercomputers but I’m coming up dry.  Silly as it may be, it could be theWOPR of WarGames fame but I’m hoping it was something more profound (like seeing one at the UW Engineering Expo in elementary school or something like that).

Regardless, as in other areas of interest I find the money-is-no-object pursuit of performance intoxicating and while in the past it may have been absurd to consider possessing such a machine for personal use, allot has changed which has opened allot of doors to the personal supercomputer.

The most direct would of course be the Cray CX1; literally marketed as a personal supercomputer which, when properly configured, certainly lives up to the claim.  As cool as this is, I have to say that it lacks the “panache” of the Crays of yore, and the pricetag presents a significant disadvantage to other “ugly” HPC options, so for my purposes it’s not a serious consideration.

Speaking of “ugly” options the most significant source of growth in the installed base of supercomputers is most represented by “Beowulf“-style cluster of commodity hardware which rose in popularity in the mid to late 1990’s.  I have fond memories of parting together a system of this nature while a consultant using decommissioned machines from my employer and other customers.  In the days of 10Base-T network latency may have been the biggest bottleneck for such a system but you can’t beat the MFLOPS/Dollar…

(that is, unless you consider the cost of electricity perhaps…)

While these systems are eminently “practical” let me say that “practical” should not be a part of any self-respecting supercomputer’s dictionary.  It’s a great way to learn about the architecture (and even more useful, designing and writing software for a massively-parallel machine) but the compromises made in the name of cost violate most (all?) of the supercomputer commandments handed down from the Great Father.

As I mentioned above however, I did gain allot from the experience of assembling a “stone soupercomputer“.  The biggest thing this experience revealed to me was the challenge of actually writing software for such a machine.  Up until this point I didn’t pay much mind to the software end of the system as I was still wrapping my head around the hardware.  Once I had a working parallel machine at my disposal I figured out that there’s not allot of “off-the-shelf” applications for such a system and spent allot of time reading and experimenting, beginning with the book “High Performance Computing Demystified” by David Loshin.

So when I decided to return to the subject I dusted off my copy of HPCD (from 1994!) and began re-reading with vigor.  While the hardware has come a long way, and allot of the more “exotic” technology (pipelining, multiple processors, liquid cooling, etc.) has become more commonplace, not as much has happened in regard to software, so allot of what this book focuses on is still relevant today.

As I read I’m going to be digging further into (and commenting on) a few of the more recent developments which are available on the Mac platform, including Xgrid andOpenCL.  Xgrid isn’t “new”, but there are some considerable new features in the 10.5 release that make it much more useful for this sort of project.  Even more interesting is OpenCL, which provides an elegant way to exploit the processing power in the video cards most computers ship with today for tasks beyond image processing.  While neither of these is by itself what I would consider in the vein of supercomputing put forth by Seymour Cray, I believe these are the building blocks, and the software targeting these platforms certainly lays the foundation for a future machine that would live up to the title of supercomputer.

For now, I’m off to read and tinker, but as always, “…more to come”.