Over the weekend, we stumbled upon Paul Edwards’ blog and were captivated by what he was building. So, as any journalist would, we reached out…

Bramble is a baby supercomputer. Currently, this cluster consists of a single master machine and five slaves which gives 20 cores available for work. Edwards has it processing neural network based time series predictions (using the fantastic ConvNetJS framework).

The hardware is fairly simple — six Raspberry Pis, an eight port Ethernet switch (which gives him room for expansion), and a USB power supply. The Pis are powered from a 60W USB supply, which means that the cluster’s power consumption is roughly equivalent to an old fashioned light bulb.

Physical construction is purposely kept as simple as possible (two bits of 3mm perspex with holes cut) — in other words, the whole design can be scaled in the future.

Although the Raspberry is a 64-bit architecture, current distros are only 32-bit, so you have to use 32-bit Mongo — which limits the persistence layer to 2GB of storage (in Edwards’ case is good for approximately 270K records).

At the moment, the platform processes approximately 40K neural networks per day. As each network takes around 25s to train, our theoretical limit should be in the region of (24hrs * 60mins * 60secs / 25s traintime * 20processors) = approx 69K networks per day — this means it’s currently running at 58% capacity. Some of this limit is coming from my scheduling code (which currently has to query mongo every time it is asked for a job) — there are many inefficiencies to be fixed…

As the design of the construction is highly modular in nature (you could keep stacking these modules), Edwards tell us that he may devise a power control solution which powers up a bank of the cluster when the master detects high load (also, shut the bank down when it is no longer needed).

Be sure to check out his impressive work here.