Raspberry Pi clusters are a dime a dozen these days. Well, maybe more like £250 for a five-Pi cluster. Anyway, this project is a bit different. It’s exquisitely documented.
[Nick Smith] built a 5-node Pi 3 cluster from scratch, laser-cutting his own acrylic case and tearing down a small network switch to include in the design. It is, he happily admits, a solution looking for a problem. [Smith] did an excellent job of documenting how he designed the case in CAD, prototyped it in wood, and how he put the final cluster together with eye-catching clear acrylic.
Of interest is that he even built his own clips to hold the sides of the case together and offers all of the files for anyone who wants to build their own. Head over to his page for the complete bill of materials (we didn’t know Pis were something you could order in 5-packs). And please, next time you work on a project follow [Nick’s] example of how to document it well, and how to show what did (and didn’t) work.
If 5 nodes just doesn’t do it for you, we suggest this 120-node screen-equipped monster, and another clear-acrylic masterpiece housing 40 Pis. This stuff really isn’t only for fun and games. Although it wasn’t Pi-based, here’s a talk at Hackaday Belgrade about an ARM-based SBC cluster built to crunch numbers for university researchers.
These are awesome! What I love is that they also open up the world of supercomputing to kids for dirt cheap. I really wish high schools had REAL CS classes instead of the useless classes we teach kids today. It should be as mandatory as PE.
And what a kid should do with a Supercomputer?
Surprise us, hopefully.
It’s more about getting the kid to grasp the aspects of parallel programming. It’s easy to get in the habit of creating code that does not take advantage of the parallel architecture.
You are so right. I work in games and it is so hard to craft the game logic to run on multiple threads. It is a very important skill and not as easy as you may think.
I was working on the c elegans genome decoding when I was a kid and this would have been great to have, what did that lead to, the human genome project , what’s that, the cure for cancer. Just need more computers , i just wish the guys from bit coin would put all those wasted flops towards something useful rather than hentai and heroin.
Uh, a 5 pi cluster is-not a super computer by any stretch. A single gaming PC with a run of the mill GPU would trounce this thing. And yes, the Pi’s are cheap, but even clustering enough of them to equal the price of a modest gaming pc like I described above would not have the performance to make it worth it…
Oh my OnceOnFire, the moment you started mentioning gaming I already placed what kind of “expert” you are. The world doesn’t exist out of computers rendering frames as fast as possible, gaming was just a spin-off.
Missing the point – this cluster would indeed be trounced by a decent desktop, however it allows people to start experimenting with distributed computing at a much lower cost to their wallet and floorspace.
Nope, not even that is a “valid” reason to build one, you can learn as much or more with these tools, http://www.brianlinkletter.com/open-source-network-simulators/
The only excuse I can think of is summed up by a pithy retort popular in my country, “Why does a dog lick it’s balls? Because it can!”
“Stop doing things in ways that I don’t like! My way is better!”
-Dan#9445376854
You need help with your English comprehension. The point is that people do these things because they can and because they enjoy it, not because there is a technical justification for doing it, because as others have pointed out there isn’t. It is about the journey, not the destination.
its cheaper than a bunch of virtual machines? news to me
And containers are far cheaper than virtual machines. Very little overhead. One could use a single RPi to learn parallel programming by using containers. I’m jealous of today’s youth.
Funnily enough, I’ve actually used LXC containers on a RPi to prototype a design for a web service (containers for each of the proxy, database server, application servers, etc.). Left the computers at home on vacation but brought a RPi along for my boys to play retro games. Couldn’t sleep one night so I put the resort’s decent Internet access to work and hammered out a design… Maybe I have no reason to be jealous of today’s youth.
That was the conversation from the last article. This is just about cluster/distributed computing. While the GPU can definitely give extreme performance, that’s more about parallel algorithms/computing. You can surely have a parallel algorithm that is distributed across multiple GPUs, and that would give lots of processing power.
My viewpoint is that if you are writing software, you should be writing scalable distributable software.
Sometimes it’s just really handy to have a cluster ready to test that software on, without dealing with cloud providers. Obviously you can test that in a bunch of Docker containers, and it’s not like performance matters in this environment, but sometimes it’s just cool to do this. You might want to test distributed scenarios with off-the-shelf software like Cassandra/Mongo/ZooKeeper, or test how your app scales up in response to load, etc.
The Pi isn’t a perfect match, USB ethernet and slow SD card access for a start, but I could imagine a cluster built out of Odroid C2s or similar, for a similar cost.
Supercomputer? This? Sorry, not even close. Cost effective: get a 2-year old GPU and put it in a 2-year old computer (i7). Then we are starting to see some action for cheap.
Super-computer style, then. Learning parallel on a GPGPU is great, but dealing with concurrency across cores that don’t have shared memory is a whole other ballgame.
The important thing isn’t actually how powerful the cluster is – it’s learning how to break up a single computational task into something that can get distributed on a cluster, and learning some of the tools for doing so. This is a pretty important skill for CS people, and now you can play with it without having to do a lot of dumpster diving and running up your electricity bill. There is plenty of value here, even if the total compute isn’t actually that powerful.
True, but easier to simulate that with an array of vm’s than build the physical thing. This is a fun/interesting way to build the hardware, agree.
Do you know what would be really awesome? Some actual performance analysis…
Although you did also publish about the clips too: http://hackaday.com/2013/02/27/acrylic-enclosures-use-integrated-clips-to-do-away-with-fasteners/
But I’m always very happy to see these remixed for other uses!
I’d really like to learn more about cluster computing and I’ve determined something like this would be a good place to start. Before someone says “An old computer with a less old GPU would outperform this”, yeah, I know that, but I want to learn more about building things like this, regardless of how inefficient it is. I just think its cool. I think it would be a fun project to whip one up in a tiny 3D printed Cray-2 case.
One of the biggest issues I’ve had is figuring out what I’d DO with the thing in a non-academic setting (I have VERY limited experience with them in academia). Is there a reason to have this in my house?
I have the same problem. “I want a cluster” quickly turns to “but what would I do with it?” and I haven’t found a suitable answer. I don’t do any 3d rendering or other media production, have no massive simulations to run, and don’t need high-availability servers to host things for the world.
I would love to have a reason to chain machines together at home, but I just haven’t found one yet.
I had access + some calculating credits to a supercomputer (http://www.top500.org/system/8377) but all I did there was took a screenshot me logged into a supercomputer.
Quite sad. But parallel calculation isn’t really that easy, many problems are easier to solve as complete than to try to distribute them artifically.
What’s even worse is I have a beefy workstation that does all the media production stuff I could ever want (until something more new and shiny comes along).
I might just do this with a few Pi’s and cluster some USB hard drives and run a file server. Once again, completely inefficient, but it would be neat to have none-the less. To many projects, so little time.
Pool some resources and get an Intel Phi. Loads of opportunity for studying distributed computing and some serious supercomputer abilities at the same time. Try “Weaving High Performance Multiprocessor Fabric” byt he guys who did it at Intel, Maddox, Singh, and Safranek to see if you want to get into it.
Very nice build. I want to do this at some point, A) because I can and B) because it annoys some lame people here. :)
^^ I like it
The level of dismissal for these projects is amazing sometimes.
If you just built it because you think it makes a cool paperweight, cool, good for you. If you have some cluster enabled software to run on it, even better. If you are writing cluster enabled software for it, excellent.
OpenMP and multi-threaded paradigm can be tested easily enough on a single host but using MPI, MQTT and the big distributed data analysis tools really need clustered computers with relatively slow inter-node communications to be properly learned and experienced.
I built something similar with seven Pi 2B nodes. Something to consider is how to control power on/off events across all nodes in the cluster.
https://storagedownunder.com/category/raspberry-pi/
>This stuff really isn’t only for fun and games
yes, it is
https://en.wiktionary.org/wiki/technofetishism
1 word. Distcc
Something about this article is making my antivirus go crazy. HTML/ScrInject.B trojan relating so an init.sh site.
i love seeing multi-pi housings popping up. I’m not from the cluster camp – but I’d love to have this to experiment with router, mail server, web server, SDR, etc. keeps everything neat and tidy in one package instead of the pile of boards I have sitting on my desk :-D