Does anyone know some links / books / anything you can think of, that describe the process of building a little home cluster (when I say home, it doesn't necessarily mean for keeping at home - just means it's relatively cheap and small) for experimental purposes, with a special emphasis on what hardware would be adequate today, and some kind of cost analysis ?

Although, if someone here's done it, I'd appreciate all the experience you can share.

  • 2
    What kind of cluster? SQL Cluster? Web farm? Render farm? These are important details when spec'ing hardware.
    – tsilb
    Aug 16, 2009 at 8:34
  • 1
    Numerical calculation; CFD (not to go into much detail) - parallelizing fortran code.
    – Rook
    Aug 16, 2009 at 15:16

7 Answers 7


Helmer comes to mind. :)

  • 1
    OK, that's a really neat page, and makes my poor departed DeCeleron 4node cluster seem insignificant.
    – Bill B
    Aug 16, 2009 at 14:43
  • Great page ! Love the IKEA cabinet :) (maybe not the best solution, but cute nevertheless)
    – Rook
    Aug 16, 2009 at 15:37
  • To explain, this is a CPU based render farm. It is 6 Intel Quad Core machines put into a filing cabinet from IKEA (product name is Helmer). Apparently the cabinet has holes made in it (not by IKEA) on the back that allows the mounting of a PSU and FAN in 6 spots.
    – dlamblin
    Aug 17, 2009 at 0:17

There have been a couple of Ikea clusters featured on Hack A Day:


Check out the books Beowulf Cluster Computing by Thomas Sterling (one for Linux & one for Windows). They tell you all you need to know about using MPI to get your nodes to talk to one another.

A friend & I built a cluster of 8 boxes using some really crappy hardware and ran Windows XP on them. These were like Pentium I - 90 MHz boxes. Well below the specs required for Windows, but it ran fine. We also ran SQL Server 2000 on them (also well below the recommended specs) and did some black-scholes modeling of stock option pricing on them.

It's difficult to recommend what kind of hardware would be adequate without knowing what you want to do with your cluster. But the bottom line is that you can build a cluster of most anything.

  • Wouldn't you believe it, I ordered exactly that title yesterday! Now waiting for it to arrive :) Pentium 90 - wow, that is old. How did it ran, smooth or with glitches ? Could you give a comparison with some modern equivalent ? That btw is actually a pretty good idea for what I'm trying to do, since that kind of hardware can nowadays be gotten practically free (dead cheap anyway). I'm trying to build it for the purpose of parallelizing some code, so I'm experimenting at the same time with the code, and the hardware part. It is a learning experiment to see how it will go.
    – Rook
    Aug 16, 2009 at 0:33
  • 1
    The cost of running such old hardware is steep, in terms of power/work; multiple 90MHz machines will use lots of electric to produce the work-equivalent of a more efficient single-machine. I'm interested in your project, but...be aware that it can be costly in interesting ways... =] Aug 16, 2009 at 0:42
  • performance was fine. it was a project for school, and our hardware was whatever the school had laying around. we also gave no concern to power issues, but ricebowl is absolutely correct. they were loud monsters. Aug 16, 2009 at 12:44
  • @ricebowl - At this point, that is not a problem. 90Mhz are a good idea since we got them laying around, so no cost there. Elec. is also not a problem, since the company pays it, power used by computers are negligeable there. At this point I'm learning the fundamentals, new hardware can always be gotten if needed.
    – Rook
    Aug 16, 2009 at 15:19
  • @Nathan DeWitt - loudness is also not an issue. I don't mind the sound (always seemed soothing to me), and nobody's around them anyway.
    – Rook
    Aug 16, 2009 at 15:20

An alternative to having many physical cluster nodes is creating virtual machines. You would only have one or two actual physical machines, but could simulate having many more nodes. This would work fine for creating, learning, and use less resources (space, power, $$$).

This wouldn't give you much of any cost analysis, but it would get you started. The type of cluster setup would depend on the type of work you want to create for it. You can many small nodes or have just a few powerful nodes. There are shared and non-shared memory environments to consider also. What type of parallel programs are you wanting to create? The more physical nodes you have, the more space, power, cooling, and network inter-connectivity you have to consider. Sometimes, just one big massive computer is the way to go (and shared memory environments are easier to program for IMHO).

I recently started playing with a cluster build a few random P4 boxes, ubuntu, and LAM-MPI. It has definitely been a learning experience.

It was actually a couple p4 laptops and towers just piled together in a garage. It was ghetto, but I just wanted to learn. I just used a 100 Mbps ethernet network. I chose ubuntu, because I didn't want to deal with much hardware configuration of the boxes. Ubuntu had a lot of the drivers I needed. I needed a linux environment as the applications I wrote for it were C based apps with MPI interfaces. I tried to replicate what I had used before. It was all misc. hardware, nothing standard. Most clusters have exact hardware so you can add and remove nodes in a snap.

  • Well, I got a big number of old workstations at my disposal. From early pentiums to the ones up until 266 Mhz. Room and power I got plenty. Noise is also not a problem, it's not near people (yeah, just in case you're wondering, I don't consider myself a member of the human race :) New hardware can always be gotten later if needed, but for now I'm trying to avoid unneccessary costs, if I can, by playing with these. I'm trying to parallelize some (not old) fortran code (CFD, FVM). At this point I'm mostly intersted in hardware assembly, OS running principles, and getting a general grip on things
    – Rook
    Aug 16, 2009 at 15:28
  • Virtualization is of little use if it's all about CPU-bound numerical computations. Aug 16, 2009 at 15:30
  • If I'm not asking too much, how did you connect them together (not just the internals, but where did you put them (large tower ? cooling issues?))? Why ubuntu ?
    – Rook
    Aug 16, 2009 at 15:36
  • @Idigas Added a paragraph to my answer.
    – Troggy
    Aug 16, 2009 at 18:06

Depending on what you're trying to do, consider developing your system on a cluster of virtual machines. Using an OS virtualization solution like OpenVZ or Parallel's Virtuozzo or Solaris Containers will let you scale up to enormous densities compared with full system virtualization (e.g VirtualBox/VirtualPC/Xen/VMWare). Then when you actually need to deploy the system for some performance run it "in the cloud" on Amazon's EC2 or similar.

  • I was hoping to reuse some older hardware that I got laying around at this point, so virtualization is not that attractive to me.
    – Rook
    Aug 16, 2009 at 15:22

I'd start by looking at the LittleFE (http://littlefe.net/) or Bootable Cluster CD (http://bccd.net/) projects, personally. Also see the Ubuntu Cloud project (http://www.ubuntu.com/cloud).

More-or-less any hardware should work. I'd be inclined to look at some form of close-out deal or machines coming off lease to pick-up some cheap hardware.


Have a look at Rocks which is a cluster distribution which makes building cluster realy easy. It also scales up to at least a few houndred nodes.

Not the answer you're looking for? Browse other questions tagged .