Parallel Computing Test Bed using Virtual Appliances
For a recent article of mine, I had to do some experimentation with OpenMPI. I wanted to make sure that some of the basic code snippets accompanying my article worked as expected and did not want to take the pains of setting up a real cluster and hence decided to set up a virtual cluster using Virtual Box.
Virtual Appliances using BoxGrinder
Now, I could definitely install one of the available Linux distributions onto each of my virtual machine (say, 3). But, why not go for something more barebone, such as Virtual Appliances. I had also been playing around with BoxGrinder and thought of creating a simple parallel computing node virtual appliance with some of the software you might need for such an appliance. Here is the appliance definition file (f16-node.appl):
name: f16-node summary: A Parallel Computing Node appliance based on Fedora 16 version: 1 release: 0 os: name: fedora version: 16 hardware: partitions: "/": size: 2.0 packages: - @core - @development-tools - gsl - openmpi - openmpi-devel - python-pp - scipy - ipython - python-pip - screen
As you can see, this appliance file defines a Fedora Linux based virtual appliance including some of the parallel computing libraries and some other miscellaneous utilities. Now, create a virtual appliance for VirtualBox using: $ boxgrinder-build f16-node.appl -p virtualbox. Once the build process is completed, locate the f16-node.vmdk file under the build/ sub-directory.
Cloning the Virtual Box appliance
Now, that we have our Virtual Box image ready, we shall clone it using the VBoxManage utility’s VBoxManage clonehd command. Create two clones of the f16-node.vmdk file. So you should have three .vmdk files with exactly the same software. Cloning prevents us from the hassle of creating three separate virtual appliances.
Now, create three new virtual machines each using one of the above hard-disks. While setting them up, remember to setupBridged Networking, so that each virtual machine gets a internally (local network) accessible IP address. Check from your host machine if you can ssh to the virtual machines. If yes, you are good to go!
Let me know if that doesn’t work for you.
Related: My earlier post on creating an ownCloud appliance using BoxGrinder.