Do-It-Yourself Supercomputing
There was an article in the mid-90's in a physics magazine, Physics Today if I recall right, called "Do-It Yourself Supercomputer" or something like that and I was mentioned in it in passing. This has been a source of endless frustration for me, though I don't blame the author. (Our mutual PhD advisor wasn't very good in advising about such things, and in fact I am the first author on the first paper about his Ph.D. work as well!)
In fact, it was me. My advisor scared up the money and came up with the idea, but I started with a bag of chips, a bunch of wires and a breadboard and proceeded to build a 192 processor general purpose parallel computer and I used it to do real science.
As an undergrad I studied electrical engineering, and I still consider myself an engineer rather than a scientist. My advisor wanted to do really large computations about fluid dynamics, including climate, planetary physics (he was interested in the atmosphere of Venus) and small-scale threats to aviation. He assigned me the ocean as my beat, but being the only electrical engineer in his entourage (besides himself) he encouraged me to do the grunt work in assembling the computer.
The key was a chip called the "Transputer", which is very similar in concept to today's digital signal processing parts from Texas Instruments. It had a processing unit and four high speed communication channels, and came from a peculiar startup in the UK. Unfortunately the Transputer never found its market. I think it tied its fortunes to a parallel coding language called Occam, an idea that was greatly premature. Even today nobody has a clear idea how to write a language that effectively codes for large collections of processors.
My boss, John, nevertheless bought up about 200 of them. We also found a small outfit out of Oregon called Logical Systems that had a proper C compiler for the beast. Communications were handled in a "close-to-the-machine" way that us old-timers were familiar with from the early microprocessors like the 8080, but it worked well enough.
My first problem as a dissertator, though I was in the Atmospheric and Oceanic Sciences Department at Wisconsin, was to get code compiled and linked for these peculiar chips running on one of them. I built a "breadboard" implementation of that, essentially a temporary way of wiring circuits. There's a lot of steps to this process, and I did all of them, short of writing the compiler or creating the chips. Once I understood how to do this, we needed to get multiple chips communicating. At this point, I was doing serious prototyping for one of the world first parallel computers. We decided we could fit three chips per board in the form factor we were targeting. At this point some more experienced engineers were involved, talking about power, and chassis, and connectors, and costs, but I still drew up the circuit specification.
The circuit was then wire-wrapped by technicians at the Space Science and Engineering Center, and it fell to me to debug the circuit (which wasn't quite right.) I still have that board today.
In the
photograph, you can see tightly wrapped blue wires installed by professional techs and sloppier yellow wires installed by me. In the end there was a sort of a hardware bug (a "race condition") and I had to call in some reinforcements to figure out how to slow down the signal that was getting in too fast. Ouch!
At that point, though, I had managed with some help to build a three processor board that worked, and we had a printed circuit etched from that design. That was the machine that I did my thesis work on.
It turns out that this sort of behavior wins few points in the scientific community, and the fact that I wan't even the author of the popular article about this effort made it hard for me to brag. The heck with it. It's do-it-yourself month and I am bragging. I built one of the world's first supercomputers as a grad student.
What did I do with it? That's another story for another day.
In the end there were four users of the machine before it fell into disuse. Ocean modeling and microburst modeling were the main projects. We also had a brilliant techie who did real-time visualizations of our running models, a convenience I have yet to see replicated in modern supercomputing. (He moved to some silly place like Austin, Texas. I wish I could remember his name at this point.)
I suspect that I did more arithmetic for my thesis than any prior grad student had ever done, though I've surely been surpassed since then. This achievement did me less good than I expected. My degree didn't say "engineering" after all. A few years later the "top 500" supercomputers list started coming out. I imagine that if had started earlier my career would have taken dramatically different turns.
Tags: do-it-yourself, supercomputer, technology







Blog RSS Feed













1 Comments
+ Add Comment
February 23, 2008 6:36 PM
cvj
Once again, Michael, it scarily turns out that we seem to be siblings separated at birth, or something like that. Our interests converge so much! I'm beginning to wonder if we are actually the same person having taken different paths in alternative universes, interacting occasionally via a portal - Correlations.
What is it this time? Your descriptions remind my of my teenage years playing with circuits on breadboards, (and also soldering projects onto circuit boards), and guess what my most ambitious project was? A computer built from scratch, based on the Z80 processor. Not a supercomputer - I bow to your superior grad school resources - just a regular mild-mannered computer. I still have the motherboard somewhere. Maybe I'll dig it out and make a quick DIY post from it!
I also remember later reading excitedly about the Transputer (I used to consume computer magazines at one point in my youth), and later wondering whatever happened to it. I have not heard someone mention Occam in many a year.
Happy memories...
-cvj
Post your comment