Raspberry Pi Cluster

Recently, I’ve completed construction of a 40-node computing cluster based on the Raspberry Pi single board computer. Below is a quick overview video, showing the finished product.

And here’s another one showing a few of the basics about how the case works.

In the practical sense, this is a supercomputer which has been scaled down to the point where the entire system is about as fast as a nice desktop system. Most of the resources available to individual nodes have been proportionally scaled. I believe this will make it an ideal testbed for distributed software.

Cluster - Left Side Angled Cluster - Right Side Cluster - Front Side

My goals for this project were as follows:

  • Build a model supercomputer, which structurally mimics a modern supercomputer.
  • All hardware required for the cluster to operate is housed in a case no larger than a full tower.
  • Parts that are likely to fail should be easy to replace.
  • It should be space-efficient, energy-efficient, economically-efficient, and well-constructed.
  • Ideally, it should be visually pleasing.

I feel I have met these goals with my design.

Here are the specifications of the final system:

  • 40 cores Broadcom BCM2835 @700 MHz
  • 20 GB total distributed RAM
  • 5 TB disk storage – upgradeable to 12 TB
  • ~440 GB flash storage
  • Internal 10/100 network connects individual nodes
  • Internal wireless N network can be configured as an access point or bridge.
  • External ports: four 10/100 LAN and one gigabit LAN (internal network), 1 router uplink
  • Case has a mostly toolless design, facilitating easy hot-swapping of parts
  • Outer dimenions: 9.9″ x 15.5″ x 21.8″.
  • Approximate system cost of $3,000. (The first one cost slightly more.)

Why Build It?

I needed a computing cluster that I could use for testing distributed software. Since I don’t have free access to a traditional supercomputer, I decided to build my own. Originally, I planned to create it as part of my MSCE thesis, but ended up with a different project for that. As a consequence, I pursued this as a personal project instead.

Since I was making a significant investment in this, I wanted it to be something I would be proud to show people for the next several years.

Design and Build Process

I made the choice early in the planning process for this project that no more than one expensive piece of specialty equipment should be required for its construction. This maximizes the chance that any given maker will have access to the required equipment. As I’m a member of Dallas Makerspace, I have access to CNC laser cutter through my membership, which I used extensively during the build process. A laser cutter with at least an 18″x24″ bed would be required for recreating this cluster case.

Complete plans for this project can be found through the following links:

  1. What You Need
  2. Circuit Boards
  3. Power Cards
  4. Raspberry Pi Cards
  5. Router Card
  6. Ethernet Switch Cards
  7. Case Central Structure
  8. Case Side Panels
  9. Fan and Filter Harness
  10. Ethernet Jack Mounts
  11. Hard Drive Array
  12. Ethernet Cables
  13. Power Cables
  14. Final Assembly
  15. Moving Forward

Acquired Skills

During this project, I acquired/improved the following skills:

  • Process design: Learned to better organize design tasks for an efficient design process
  • Working with constraints: Learned to better work with strict design constraints
    • Manufacture of product requires access to only one specialty tool – a CNC laser cutter with a 2’x2′ bed
    • End product dimensions were limited to the size of a full tower case
  • Prototyping: Gained additional experience in masking/etching printed circuits
    • Tried 2 new masking techniques
    • Made my own etchant for the first time
  • Equipment: Gained a great deal of skill in the operation of a CNC laser cutter
    • I had no prior experience. Now I’m one of the top resources for laser cutter knowledge at Dallas Makerspace.

What’s Next?

Now that the hardware is finished, I’ll be installing some common software packages for distributed computing, in order to evaluate their potential and train myself on them. This will include as many of the packages that run on top of Apache Mesos as possible (e.g. MPI and Hadoop). In the future, I will be writing my own distributed applications, which may include my own cluster management software and some form of reality simulation engine.

Related Links & Articles

76 thoughts on “Raspberry Pi Cluster

  1. Darren Hayes

    Rpi2 is out. Planning to put them into this cluster? Your core count is going to go through the roof!

    1. David Guill

      I like the idea of eventually upgrading to 4-or-more-core Pis, but I haven’t gotten enough mileage out of it as-is yet to justify the expense. I’ll most likely try to revamp the buck converter cards first before upgrading Pis, in an attempt to fit 44 or 48 into it. I also intend to try to release a second version of the CPU card that’s compatible with the Pi B+ and B2, possibly before redesigning the power cards, but the location of the power port on these newer models makes it somewhat difficult to fit four of them in one card of the same size.

  2. David

    I have wanted to build a Pi Cluster for some time now, and have started the early stages by ordering my first couple of Pi’s and studying your detailed instructions. Just a question since it’s been a few months since the last comment posted, have you had any more thoughts on the cooling issue? Also, I’d like to do mine with the recently released Raspberry Pi 2…how difficult would it be to adapt your design to the new Pi 2?



    1. David Guill

      I have a lot of thoughts on the cooling issue, but I haven’t had the opportunity to try any of them yet. This was my response to another commenter:

      There are some ventilation holes on the current backplate design, but not nearly enough. So the first thing I want to do is to open up the backplate by adding more ventilation holes. I feel this will allow more direct flow from the fans to the Pis. I state in my assembly instructions not to glue in the backplate – I stated this because I learned the hard way. So, in order to experiment with this change, I’ll not only need to remove most of the wiring and Pis, I’ll also need to break the welded plastic bonds holding my backplate in place. It’s not a task I intend to take on until I have at least a few days with nothing on my schedule, since I may need to do some very careful work to remove broken pieces of the old backplate.

      Regarding your suggestion that I cut more ventilation holes – I’ve considered cutting more ventilation holes on the side opposite the fans. I feel this is where it would make the most sense to add them. But I want to do this only after opening up the backplate with more holes. Aesthetically, I like that side best without holes, but I think it could look very attractive with a custom graphic cut into it.

      I’m hoping it will be a lot better after I take these steps. Ideally, I’ll even be able to put the air filters back on.

      Regarding the Pi B+/B2, I think it will be difficult to adapt the design because of the power port placement, but maybe not impossible. That’s another thing I hope to investigate when I have some time. If I do come up with a card design that will hold four of the B+/B2, I’ll share it.


Leave a Reply

Your email address will not be published. Required fields are marked *