14

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.

wonea
  • 1,877
Rook
  • 24,289

7 Answers7

8

Helmer comes to mind. :)

churnd
  • 5,146
4

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

3

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.

2

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.

Troggy
  • 10,259
1

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.

timday
  • 812
1

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.

warren
  • 10,322
0

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.