Documenting my clustered pi zero adventure
Pi Clustered, MyCustard, get it? Yeah.. That probably sounds better in my head.



[There would be a gallery here if javascript were available.]

[Click here to see the high resolution imgur album.]



Credits

A huge thanks to Mevin1 and RatRetail for their support to make this project a reality. It's nice to have friends friends like you. A shout out to my other recruits too, you know who you are.



About

Hello there, I go by the online identity electronoob. Most people know me from agariomods but my main passion is probably electronics. Getting into online game modding was just an accident really, which turned out to be fun and exciting.. For while anyway. One of the aspects which took much of my attention was running a scalable service online which can handle millions of connection. Our project burned through hundreds of terabytes of data and could crush a 20-core server without much bother, optimisations were made and the project was hugely successful.

I think this lead me to obsessing over cheap commodity hardware for creating powerful computing clusters,...

The Raspberry Pi Zero is perfect in my view for a bit of cheap fooling around, so I will create a fun little cluster with many nodes and virtually no physical space taken up. I've seen a couple of fairly decent projects for clustering the pi zero and I was going to create my own printed circuit board, then I stopped to think about it further and decided I would have more enjoyment by wiring the cluster manually. Besides, I could only find vertical male micro usb connectors at about 50 GBP (english pounds) per hundred, obviously I could have ordered less or more but it seemed somewhat extortionate considering.

The most difficult part of this project is actually obtaining raspberry pi zero boards, if you are interested in supporting my project I would love to receive as many pi zero boards as possible! P.O. Box to be arranged soon.

Thoughts

Well, in order to execute this I figured I would first try out the cluster by exploiting the usb ethernet gadget feature which is available to the pi zero, essentially you can connect the pi to your pc and it will appear as an ethernet adapter. Once this device shows up you can connect to the pi over ssh, or anything you like really once it's installed and configured. Click here for the awesome tutorial by gbaman on github which got me started.

Do I expect this cluster to be extremely fast or competitive? Not really, but I'm doing this for fun, plus I feel compelled to have the largest pi zero cluster available. I figure at current pricing of the pi zero I can have eight nodes for the price of just one quad-core pi3 node. Okay, I admit I'm not factoring in extra costs such as postage, power, usb hardware and a pi3 for controlling a group of 16 nodes.

I have on order some male micro usb connectors which I intend to solder on a cable leading to a USB hub, each hub can take on 4 devices so I figured that 4 hubs per 16 node cluster connected to a pi3 board should be sufficient. I do hope that this configuration works out well enough; I am open to some kind of alternative configuration if things do not pan out how I hoped.

Progress

#1

Since obtaining a fairly large quantity of pi zero boards, I have been thinking about the easiest ways of stacking the nodes together, thankfully I was able to grab a m2 hex bolt kit from ebay (or aliexpress, not sure which now). This kit is quite possibly very rubbish but it's just about good enough for holding the nodes together while I plan the following stages.

I haven't been to the London Hackspace in something like two years, I miss my friends there, so it will be nice to rock up with the cluster! Hang out and knock out a design on the laser cutter for the enclosure. For the moment though I'm happy enough to take my time and think through various ideas for the structure and organisation of the cluster.

For the monitoring of the cluster I will probably use an android dual-core mobile phone; I picked up several cheaply some months ago which should make fairly decent displays for each cluster. Initially I was thinking an android / windows / linux 7 inch tablet but the phones are cheaper, besides I want to be able to see the cluster's construction and a tablet will probably conceal too much of the workings.

Oh and I'm thinking about led lights for some sparkle.



Progress

#2

Not so much happened here, but there are some additional pictures which do have some captions.



[There would be a gallery here if javascript were available.]

[Click here to see the high resolution imgur album.]



Progress

#3

As you will see in the photos I have wired up the microusb cables, closer inspection will show that I needed to removing the casing around the microusb connectors, revealing an appaling mess of poor soldering, incorrect wiring and broken connections; Suddenly, I understand why the 100 microusb cables I bought on ebay had a cheap price. I was looking for cheap and perhaps even a bit crap but what I received was quite shocking, this became such a frustration and I don't know yet if the other end of the cables which connect to the pi3s are acceptable or not. I'm betting not.

On the plus side the large mess of wires has led me to believe that there must be a better solution, perhaps I may revive the PCB idea and just do it. Replace all of the wiring with PCB traces, since the vertical microusb connectors now seem cheap in comparison to the grief and low quality of the cables I bought, this PCB would be a joy to work with.



[There would be a gallery here if javascript were available.]

[Click here to see the high resolution imgur album.]



Progress

#4

I almost don't know where to begin with this update, mainly because I have dismantled the cluster and will be starting again with it's structure. I complained to the eBay seller about the utterly disgraceful usb cables and he came by this morning to collect the cables I didn't use, let me keep the ones that I did use and gave me a full refund immediately last night. The quality of customer service was incredible, especially considering here in the UK retailers can be such a pain to deal with when it comes to returns. I have recreated an idea I saw on youtube, where the pi3 boards were attached to the networking gear to make a modular looking cluster. I really loved that idea and since tearing down the previous build I decided to explore this other idea. Click here for Raspberry Pi 3 Super Computing Cluster video by KF7IJZ.



[There would be a gallery here if javascript were available.]

[Click here to see the high resolution imgur album.]



Progress

#5

I've setup 32 micro sd cards with some scripts I wrote for extracting the raspbian image's partitions and modifying the hosts and hostname files, merging the image and then copying to the microsd card. A quick test of each pizero and sdcard seems to show that all nodes are functional. Fantastic! Still, I am awaiting network cables and still not settled on what I will do about the microusb cables.. Expect another update I guess.



[There would be a gallery here if javascript were available.]

[Click here to see the high resolution imgur album.]



Progress

#6

Sooo, I've started to tell people about this project.. which is fun! I have the network cables now which fit nicely but undecided still on the USB cables. I've been procrastinating on soldering the USB connectors because I know that I could be in for 32*8 solder joins and that's pretty tedious and boring. I'm still on the hunt for the perfect cables to save me from that nightmare.