The hardware for the Raspberry Pi cluster is fairly minimal, and inexpensive. I've splurged a bit on my setup and bought fancy cases and some hardware to consolidate the power connections, but they're not strictly necessary. They make life a bit easier, but you can easily build a cluster without them if you want to save a little money. I've seen plenty of home-grown solutions that work fine, some even made with scrap plywood. Use your imagination, and engineer your own solution if that interests you.

I use five Raspberry Pi boards for my cluster. I use one as a head node, and four as compute nodes. Having compute nodes in powers of two make it easy to program MPI code, and four is probably the lowest number of nodes you can have and do "interesting" experiments. I also use a desktop as a head node sometimes, and there are reasons for doing that which will become clearer as we start benchmarking.

So, the hardware:

This is a Raspberry Pi board. This partuclar Pi is a Raspberry Pi 3 model B v1.2. It has an ARMv8-A (ARM Cortex A53) processor, produced as a Broadcom BCM2837 64-bit CPU. Although it's not terribly powerful, it packs a lot of CPU in a small and energy-efficient package.


This is a Raspberry Pi in a fairly standrad case. This is what I use for the head node, and for assorted stand-alone projects (like webcam servers).

PI3 in a case

For the compute nodes, you have a lot of options available, even if many of them are Do It Yourself (DIY). I chose to go the slightly more expensive route and buy the GeauxRobot stackable case. Here's what my compute nodes look like:

PI3 compute nodes in stackable case

When you plug all the pieces together, this is what the result looks like. This is a "Pure Pi" cluster, with a standalone Raspberry Pi acting as the head (or management) node.

PI3 Pure Pi cluster