Building a 300 node Raspberry Pi supercomputer

Commodity hardware makes possible massive 100,000 node clusters, because, after all, commodity hardware is "cheap" -- if you're Google. What if you want a lot of cycles but don't have a few million dollars to spend? Think Raspberry Pi.
Written by Robin Harris, Contributor

A guide to Raspberry Pi in 60 seconds

Poor people have compute needs, too, especially if they are chronically underfunded academics. That's what drove Larry Page and Sergey Brin to cobble together PC motherboards for several iterations of Google clusters.

Read also: This is why you need to learn the Raspberry Pi 3 (ZDNet Academy)

But when you start talking about hundreds of PCs the prices start adding up to hundreds of thousands, even millions of dollars. That's the problem that a group of computer scientists tackled in Affordable and Energy-Efficient Cloud Computing Clusters: The Bolzano Raspberry Pi Cloud Cluster Experiment by Pekka Abrahamsson, Sven Helmer, Nattakarn Phaphoom, Lorenzo Nicolodi, Nick Preda, Lorenzo Miori, Matteo Angriman, Juha Rikkilä, Xiaofeng Wang, Karim Hamily, and Sara Bugoloni, all of the Free University of Bozen-Bolzano, in Bolzano Italy.

Will it make the Top 500 list?

Probably not. The Top 500 supercomputers all cost millions.

But bragging rights? Priceless.

The paper uses the original Raspberry Pi (RPi), but today you can get the RPi3, which is roughly 4x faster, for $35. The original was roughly the power of 300MHz Pentium 2, which might have been the processor in the early Google clusters. Bottom line, you can do real work on this class of machine.

The configuration

Network. They used a star configuration, where a number of low-cost fan out switches connect to a single interconnect switch. Each RPi connects to a port on the fan out switches.

Storage. The SD cards on the RPi are too slow for writes, so the team attached a QNAP 4-drive NAS storage array and used a logical volume manager to provide volumes to sub clusters. The SD card had the OS on it so each RPi could boot using local storage.

Mounting. Design students at the Free University of Bolzano devised a rack system with individual holders for each RPi. The holders are clear so status lights are visible, and individual RPis can be added or removed while the system is running. The racks are stackable.

Power. Three-hundred individual power supplies would be unwieldy, so they took old PC power supply units to power each rack unit. Yes, if a PSU failed, 24 nodes would go down.

Software. They used Debian v7 as a base for enough functionality to boot an individual RPi so it could request the current configuration from the master RPi.

Using the cluster

21 of our favorite Raspberry Pi projects

The RPi used in the cluster wasn't powerful enough to run OpenStack or other current open source clustering software. So the team focused on providing subcluster management and monitoring so users could work in parallel on the cluster.

Given the added power of the RPi3, I wouldn't be surprised if it could handle some of the available open source clusters. In fact, in another paper researchers built a small RPi Hadoop cluster for image analysis that could be expanded to 300 nodes.

The Storage Bits take

A number of folks have built RPi clusters, but this one is the largest in the literature. One grad student built an RPi 32-node Beowulf cluster. The University of Southhampton built a 64-node RPi cluster, using Legos to build the frame. If you want to do it yourself, there are papers and videos to show you how.

The mobile revolution has pushed low-power, low cost processors far further than I'd ever imagined, back when an an eight-node PS3 supercomputer was state-of-the-home-brew art. The practical use for RPi clusters is as edge computing pre-processors and as "cloudlets" to provide low-cost services to remote and/or impoverished communities.

As ARM power continues to grow, these clusters will find a place in the arsenal of computing solutions.

Courteous comments welcome, of course. What will we be able to do with RPi 4?

Related stories

Editorial standards