Update: This information is long out of date. It’s kept here for historical reasons.
I have recently really gotten into clustering with excitement to write something that can really take advantage of one. The first thing I had to do was figure out how to cluster my computers. The second was to write something that could really use my personal cluster to its full potential. This post is about the first step.
A live CD was the obvious choice (and still is) to begin clustering: no installation and quick setup. I started with dyne:bolic, a GNU/Linux distribution geared for editing and creating multimedia while strictly using free software (already off to a great start!). I had read that dyne:bolic had clustering capabilities with openMosix, which was my reason for looking at it in the first place. I found out later (after digging deep into documentation a dyne:bolic mirror) that dyne:bolic doesn’t include openMosix anymore. No good for me.
Next I found BCCD, a live CD distribution based on LNX-BBC the same distribution used by the Free Software Foundation for its business-sized CD member cards. This one is fantastic! I think this is due to its goal as an educational tool, making it easy to learn about clusters while using it. It comes with several programming examples and full MPI development capabilities.
The only objection I have about BCCD is that the boot/setup process is too interactive and manual. When booting off a CD, you must create and confirm a password (good!), hit enter through several dialogs to detect network cards (annoying), plus a dialog about DHCP (not bad). Then you have to broadcast a heartbeat and enable the openMosix detection daemon. I also have a problem with it occasionally trashing the fat16 file system my USB thumb drives. Fortunately, this only causes trivial, and small data loss as the drive contains only data generated by the cluster.
I own two computers and have a access third one (a laptop) borrowed from my school for use in a robot design lab. I have not yet employed my roommate’s computer in my cluster (only a matter of time!). Since my NETGEAR router has only 4 ports, 4 computers is the max for my cluster. Booting up 4 computers with BCCD can be annoying enough, but imagine booting 30 (in some computer lab) by yourself! I bet they pictured a lab full of students all handling their own boot/setup sequence when the BCCD team made these decisions.
As I said before, BCCD has great MPI facilities (which their example
programs take advantage of), including support for synced directories.
I have yet to employ the MPI, however, as I find
to be much more convenient in terms of coding and execution (run and
forget). If you can tell me why MPI is better than a regular POSIX
pipe when it comes to clusters, send me an e-mail. I haven’t figured
why yet, if it is even true in the first place.
I have a working version of a program that can take advantage of a cluster. I will write about this later as a sort-of “part 2”.