A MINI ITX BEOWULF CLUSTER! In 2004 I built a MINI-ITX based Beowulf cluster named PROTEUS . The original configuration had 12 nodes using VIA EPIA V8000A , 800 MHz motherboards. This later expanded to 15 nodes. The little machine ran FreeBSD 4.8, and MPICH 126.96.36.199. After the first year of operation I reconfigured the chassis into a rack mountable version that fit into a 7U rack space. Pictures of the rackmount version are here and here. Proteus was eventually taken offline in late 2009, and remained unused until it was cannibalized to build an upgraded cluster.
I had no idea at the stir this thing would cause on the internet until I posted it on mini-itx.com so long ago. I'm still getting email, and the number of links and postings on the net connected with this machine continues to increase. Do a web search for "mini-cluster" or “mini-itx cluster” and see for yourself. I get the impression that there are a lot of Beowulf/HPC fans out there.
An upgraded version of the mini cluster has been built. The cluster is made up of 13 nodes using ASUS AT5IONT-I fanless mini-itx motherboards with Intel ATOM D525 1.8 GHz dual core 64-bit processors. Hyperthreading is enabled. The NVIDIA ION graphics adapters on the little ASUS motherboards support CUDA with 16 GPUs per motherboard, so there is a big aggregate potential for vector processing. Each node has 4 GB 800 MHz DDR 3 ram.
All 12 compute nodes boot from 30 GB solid state drives. Another machine having a 500 GB solid-state raid is the nfs server for the common data directory. The interconnect is gigabit ethernet. The operating system is Fedora 13 Linux. The development node is housed in a 2U rackmount case. It is equipped with a Blu-Ray optical drive and a 120 GB SSD. The compute nodes are installed in the aluminum rack mount chassis from the original cluster.
Each compute node of the cluster has an 85 watt dc-dc converter powering it. Power distribution for the cluster is divided into two sub-units of 6 nodes each, and each unit is powered by a single 600 watt 12VDC power supply. A single 1500 VA UPS provides protection from power line transients/brownouts.
In terms of power use, the new cluster is not as frugal as the original mini-itx cluster: Idle power use is approximately 350 watts, with peak power use approaching 600 watts.... roughly twice the power use.... but twice the number of cpus and much faster processing speeds. In terms of watts-per-GFLP the new cluster is a lot more efficient.
The mini-cluster currently runs a daily parallel-processing job using GRASS GIS. I’ve constructed some AVI animations of science data downloaded from NASA’s Direct Readout Laboratory. They were made using GRASS GIS and mencoder. They are simple overlays of data over time, with no filtering of any kind.
PTOOLS: Two simple C programs that use system(); and fork(); to send shell commands to multiple computers. To use these programs you need to setup SSH to use authorized keys instead of passwords (it is easy) These programs were originally written on FreeBSD 4.8 to use rsh with the Mini-ITX cluster. PTOOLS is GPL licensed.
Source code and Makefile: ptools-1.1.0.tar.gz
2D4GLX: A simple 2D graphics renderer for Linux that renders graphics primitives from a script. This is based on the ancient program 2D4NT, and still contains some of the original code. Written entirely in C. This is very much an unfinished work, but it does render graphics so I thought I’d share it.
Source and instructions: 2d4glx.tar.gz
DUPE: A program for Linux that finds duplicate file names in a path. It searches by checksum, file size, or name. Written in C and GPL licensed. If you are using an older version of dupe, you really ought to consider upgrading to version 1.2.4 because it now features checksums, threading, faster sorting and a lot of minor improvements. Keep your eye on this web site as dupe is an ongoing project and will change frequently. NOTE: While it can be compiled and will run as a 32-bit binary, this program really, really needs to be compiled and run on a 64 bit operating system as a 64-bit executable. The hardware should have multiple cpu cores and have adequate memory.
Source code and Makefile: dupe-1.2.4.tar.gz