A Cluster Story – Part 1:Building and Parallel Computing

As I often do, I start a project just to learn about something. This time, I decided to build a computer cluster and I barely knew how clusters work.

I was at school and I asked a friend “How crazy would it be to build a cluster using old computers?”. “Quite crazy, but let’s do it”. And after school we were in my basement choosing the motherboards to use.

Even if we had lots of motherboards that only supported 32bits CPUs, we went for some 64bit Pentium 4 CPUs and relative motherboards. And this is short list of components that we used:

  • 2x Pentium 4 Dual Core 64bit @2.00GHz CPUs, on two different Asus motherboards, but I don’t remember the model, with 2GB RAM each
  • 1x AMD A8 Quad Core @ 2.60 GHz CPUs, on an Asus motherboard with 8GB or RAM. This combo was my friend’s and we used it for the cluster project
  • 1x Intel Core 2 Duo Dual Core @ 2.00GHz, on an Asus P5-Q motherboard, with 2GB RAM.
  • 2x IDE hard drive, 80GB each
  • 1x 280GB Sata 2 Drive
  • 1x 320GB Sata 2 Drive
  • 1x 80GB IDE hard drive

Testing components & installing Ubuntu Server

 

After a whole afternoon spent on testing RAMs, motherboards and components. We started installing Ubuntu Server on the three Pentium 4 motherboards we got working. Then we installed MPICH on each server, following this guide. And then the discovery: MPICH only worked for parallel computing. So I decided we needed a little bit more information about how clusters work, a bit of Wikipedia reading was enough.

 

 

MPICH install and config.

 

There are two main types of clusters: Parallel Clusters and Single System Image (SSI) Clusters.

  • Parallel clusters make each node run the same program. Programs have to be written to use this type of work division.
  • Single Sistem Image Clusters make multiple machines count as one, single, big machine.

SSI Cluster was what we needed.

We tried to use Rocks Cluster. It’s a fork of CentOS enhanced to build SSI clusters. Configuration was easy, using Rocks 6.2. Adding nodes to the cluster was quite hard on Rocks 7.0, so we decided to go back to 6.2. After some days of experiments we made our second discovery: Rocks Cluster is used to build Parallel Computing clusters.

Finally working Rocks Cluster

 

But having some bare bones components lying around in my room, since I share my bedroom with my sister, was quite annoying. So I decided to build a “closet” to host all the components

So, together with my Dad, I started cutting some pieces of wood we had lying in our basement and built a structure to hold all the nodes of the cluster and a monitor to use it.

Here are some photos of the plane used to old the nodes and the final structure.

 

 

 

 

 

 

 

Complete view of the cluster structure and of some of its parts

 

 

 

 

In the next part we will see how we solved the SSI problem and future enhancements