My "Micro" Beowulf
Over the years, I've collected a number of PCs - mostly surplus from my wife's company. They're technologically obsolete as workstations, so I decided to give them new life and, at the same time, satisfy a curiosity I've had for some time: Could I build a Beowulf?
So, after a little research, I decided to build a six-node cluster with the hardware I already had, just to fiddle with. Clearly, I'm not going to obtain blistering compute speeds with such a meager setup, but it's certainly sufficient to explore some parallel computing concepts. And, heck, it's just a great nerdy thing to do! Since I've used it on all my other servers, I chose to use Debian GNU/Linux on all cluster nodes.
I obtained an 8-port fast ethernet switch, stacked the boxes together with a monitor, keyboard and mouse and connected them all to the switch, making a private cluster network. To the "head" node, I added a second network card, which I connected to my main LAN. I also swapped hard drives to give the "head" node enough space to house a basic Debian "mirror". I then loaded Debian onto the "head" node, configured it and created the mirror.
There are numerous schemes for installing and maintaining cluster nodes. Since I have so few nodes, I took the "brute force" approach, installing each in turn manually. Everything went pretty well, even though I had no KVM switch and moved monitor and keyboard connections manually. Again, the small number of nodes made this feasible. The mirror is worth the time to setup, since it provides an easily-accessible Linux baseline all the downstream cluster nodes use for installation, without requiring any access to the "outside world". This eliminates the need to setup/configure packet routing through the "head" node.
With the basics in place and all nodes accessible from the "head" node via SSH, I installed the Parallel Virtual Machine (PVM) package on all nodes. This is a slick, easy-to-use environment on which to build distributed apps. that can be deployed on the cluster. However, there are numerous other tools/environments available, including the popular Message Passing Interface (MPI) library.
Conventional wisdom dictates one should have a problem to solve that can benefit from a distributed, parallel implementation before actually building the cluster. Yeah, well, so much for conventional wisdom. Now that my "Micro-Beowulf" is up and running, I needed an application to exercise on it. Since I'm very familiar with it and it's readily implemented in a parallel fashion, I decided to try a Mandelbrot fractal generating program. Within a few days I had a PVM-based app. that can generate fractal images by dividing the image regions into separate tasks and farming them out to cluster nodes. It all works pretty well. But most of all, it's been a fun exploration.
I wonder what I'll do with it next? If you have any suggestions, please contact me.
- Login to post comments


Beowulf
Next?
Isn't it obvious?
Upgrade the Beowulf so that you can play World of Warcraft on it and give me back my new and improved, wicked-fast computer.
Oh, and I do thank you for the upgrades! You are my favorite tech support guy!
Love you!
Wife