A Beowulf is a personal supercomputer made of a number of interconnected commodity Personal Computers to form a massively parallel processor. The significant feature of most Beowulf computers is their low cost, particularly when measured in a per unit computational performance basis. There is a lot of web literature on Beowulfs: a good place to start is http://www.beowulf.org/. Another excellent reference is the book by Sterling, et.al, How to Build a Beowulf from MIT Press. Robert G. Brown has an online version of a book he is working on as well (Engineering a Beowulf-style Compute Cluster).
Certain classes of problems that require very tightly coupled memory are not suited to the beowulf, which tends to have relatively high communications message latencies. However, there are a number of problems for which this isn't a significant hindrance. An example of the latter is optimization by genetic algorithms, where large numbers of "offspring" must be run through the model function between each generation.
Beowulf Mailing List Archive http://www.beowulf.org/pipermail/beowulf/
http://www.phy.duke.edu/brahma/ Robert Brown's site with lots of useful (practical) information
I am building a Beowulf in stages, starting with the acquisition of the computers. Since my interest is in developing the algorithms, not so much in raw speed, my computers will be cast off dinosaurs of an earlier era (i.e. Pentium 133 or 166, or maybe PPros if I get lucky). Others with a lot more money can build the big fast Beowulfs with Pentium III or Xeon processors.
I've been watching the online auctions and the auction listings in the newspaper waiting for the day when someone is unloading a pallet full of suitable old computers. My most likely bet is the equipment lease companies and/or refurbishers. Large corporations tend to minimize the number of kinds of computers on their desktops, and as the top brass get the latest gee-whiz computer, the previous generation trickles down to each lower layer. The bottom layer scraps theirs. In the last few weeks, several online auctions have had lots of 10-20 P133 or P166's at around $50-80 each.
It's important to have a CD-ROM and a big enough disk in the machines so that software loads aren't a pain. The video interface isn't important, and neither is the monitor. Sure, I could go out and buy a stack of disk drives or network cards or whatever, but it adds up when you are buying 10 at a crack, and it would be antithetical to the rock bottom low price strategy I am looking for.
People building a Beowulf with a real budget typically go out and buy minimum cost assembled systems with a motherboard and processor 1 generation behind the latest. These run about $500-1000 per node, so a 16 node machine would still be <$20K, which isn't bad for a computer with the computation power of a Cray of only a few years ago.
Following the advice I often give to others, I have been contemplating what, exactly, I want to have a Beowulf for (other than just being able to tell the neighbors I have a supercomputer in the garage). It turns out I have the following interesting (to me) applications:
1) Optimization of antenna designs using genetic algorithms. Embarrasingly parallel, because most of the work is running the simulations to determine the pattern and efficiency, not generating the next set of designs to try. One could also do it a bit more fine grained by using one of the parallelized versions of a linear algebra package to do the matrix computations in NEC.
A related problem to the above is given a set of existing antennas, connected by a adjustable passive LC networks, how do you adjust the L's and C's to optimize (according to some cost function) the pattern, in semi real time.
2) Inversion of subsurface radar and electromagnetic data. Say you measure the resistance between all possible pairs of a 100 element array of ground rods, placed somewhat randomly. Now calculate what subsurface configuration will result in that set of measurements. This is particularly non trivial when the ground surface isn't a nice flat plane. The typical solution techniques tend to be iterative, and involve creating a large FEM model (a guess), calculating the measurements you would get with the model (resistance is easy, although tedious), and then adjusting the model. Lots and lots of computation.
The latter is particularly interesting, and I want to be able to do it "in the field". So what I want is a "portable personal supercomputer". Giving me the following list of requirements:
Small size - It needs to fit in the back of a minivan, or in chunks that can be checked as luggage, put into the front or back seat of a car, etc.
Transportable - Has to be packaged so that it can be sealed up (neither rain nor snow, nor gloom of night...) Has to be rugged (i.e. not break when you drop the box 3 feet or so) in this environment.
Run off 12V DC power - You might be running on a generator, on some really unreliable external power, etc. Running off a big battery charged by whatever is a great advantage.
Thermally rugged - I have a friend who has cooked a series of notebook computers running them as APRS stations in his car. Turns out they really aren't designed to operate at an ambient temperature much above 30-35C. Cold probably isn't an issue (dissipate that kilowatt of electrical power, and cold stops being a problem).
I/O interfaces - might want to provide some sort of high speed analog interfaces. Open question whether one node can do this and feed the data off to others for processing.
Diskless nodes - no moving parts, etc. - probably have to bite the bullet and figure out how to build a boot prom for the ethernet interface.
Headnode has the big disk for NFS
Build my own packaging for mobos.. s
inverter and standard PC power supplies - need a monster inverter, and they aren't cheap. Furthermore, an inverter feeding a switching power supply seems a bit iffy, the current waveform on a PC power supply is a bit strange. nothing some series inductors might not take care of though..
UPS and standard PC power supplies - solves the monster inverter problem, but I don't think they are well suited to running off 12V (allthough, having dismantled a few of the smaller units, they use a 12V leadacid battery inside). A bigger problem might that they aren't suited to 100% duty cycle, and to running off a generator, where the frequency fluctuates a lot.
Custom power supply using DC DC converters - 12-5 and 12-12 are easy to come by, and the 3.3 or 2.8 or whatever is probably also fairly easy to come by.
Sure enough, you can buy EVERYTHING you need to make a beowulf at Walmart. For under $2000, you could put together an 8 node personal supercomputer! I wrote up a short page about it.
beowulf/index.htm - 28 Sep 2002 - Jim
(Jim's Home Page)