Update: We're now designing the third generation of our Raspberry Pi cluster, you can follow the evolution of the beast here and chat with us about the project on our dedicated Gitter channel!
To cut a long story short...
The Short Version
We've assembled an awesome 120-Raspberry Pi cluster for testing balena.io. We're looking for ideas of awesome things we could program for it.
The Long Version
Here at balena HQ we're preparing to crack the doors open and let our work out to the world with a public beta. If you've been waiting, it's coming Real Soon Now (tm). However, as part of our preparation, we wanted to build a rig so we can test updates to a swarm of embedded devices in a controlled environment.
Note: some screens are missing and/or dark as we're just about finishing the last steps of the build. Almost there.
So, testing was the core motivation for building what we affectionately call "The Beast". 120 Raspberry Pi, each with a 2.8" Adafruit PiTFT screen, all mounted on a wood panel in a somewhat eye-pleasing format. Behind the panel, we mounted 10 USB hubs, and 10 Ethernet Switches. A Corsair CX750 power supply unit completes the beast.
The build is composed of 5 independent 24-node clusters that are unified only by the joint provision of power and networking and can operate independently if needed. They are held together with hinges, and the arrangement of the parts in the back of each section is such that the entire configuration can be folded into a tube with an almost pentagonal cross-section.
Previous (and excellent!) examples of Raspberry Pi Clusters we'd seen stacked the devices flat on top of each other. We felt that a fabric-like arrangement would be easy to build and demonstrate, allow us better access to the devices, and not require any cooling. Also, by attaching screens, we could have directly examinable feedback as to whether a test has succeeded or failed. Easy to build was probably a stretch, but after 9 days of almost full-time work, we're aaaalmost there.
All this said, while this cluster achieves its goal of allowing us to test balena.io updates at some scale, having the devices on balena allows us to 'git push' more or less anything we want onto these devices. And we have a feeling a lot more than "hello world" can run on this!
While we'll be preparing a much longer and detailed post about how we actually built the cluster, this is a call for ideas: What would you do with a 120-Raspberry Pi cluster? The ideas that hit a sweetspot between awesomeness and feasibility will be coded up, the resulting code open sourced, and we'll photo/video and blog the result. Ideas requiring modifications to the setup and/or additional hardware may be implemented, depending on their awesomeness/cost ratio.
Post your ideas in the comments! Or chat to us in our community chat