It caught my attention because I've been running my own old-fashioned 'Raspberry Pi Dramble' cluster since 2015.
So today, I'm wrapping up my Raspberry Pi Cluster series with my thoughts about the Turing Pi that I used to build a 7-node Kubernetes cluster.
Video version of this post
This blog post has a companion video embedded below:
Getting a Turing Pi
Since 2015, my Pi cluster has gotten better every year. But managing the cabling and physical mounting for the cluster is annoying, even though I'm using the PoE HAT now to reduce the cabling down to one network cable per Pi.
So when I saw the Turing Pi, and it's promise of easy integration with Compute Modules, I considered placing a pre-order.
A couple weeks later I got an email from one of Turing Machines' co-founders, asking if I'd seen the board before. I said, "yes I have, it looks really neat! Do you think you could send me one to try out?"
Well, he responded with an offer I couldn't refuse—he sent me a prototype board, the Turing Pi 1.1, along with 7 Compute modules, and told me to have some fun with it. And so I did, and in the course of testing it out, I posted a series of videos, showing everyone how I installed K3s on the cluster, then I installed Minecraft server and proceeded to dig straight down.
Recently Turing Machines started producing a 'big batch' of boards, and they'll be shipping all the pre-orders over the next few weeks. I thought it would be a good time to post my full review of the Turing Pi, after using it for a couple months.
So let's get this question out of the way first, since it's a pretty polarizing topic:
Why cluster a bunch of Raspberry Pis together?
Isn't it more cost-effective and even more power efficient to build or buy a small NUC or a cheap old laptop? Wouldn't that perform better, especially since you can use a proper SSD, and have more expansion options?
Well... yes, it would.
But is building some VMs on an NUC fun?
No—not as much as a little cluster of Raspberry Pis, at least.
And while the Pi is no speed demon, it's not a slouch either. In episode 5, I compared the performance of the Pi 3+ and Pi 4. Neither Pi CPU could be crowned king over all other processors, but they can do most tasks without much pain.
And there are some use cases, like energy-efficient clustering (assuming you don't run at 100% CPU utilization all the time), where the Pi does actually have a leg up. You can run a cluster of Pis with 28 CPU cores and no fan with less than half the energy required to run a 60-watt light bulb. Try doing that with any modern Intel CPU!
What's Wrong with a Model B cluster?
And if you look at the benchmarks from the previous episode, you might notice the Pi 4 is more than twice as fast as the Compute Module 3 B+ in many ways, so why shouldn't you build a Pi 4 cluster instead of a Turing Pi cluster?
But the Turing Pi is built in a way that makes building a Pi cluster a lot easier. I took the Pi over to my workbench so I could take a deeper look at the Turing Pi's hardware.
Turing Pi Hardware
The Turing Pi fits in any Mini ITX case (I'm using this case in the picture above), and there are two ways to power the board, either through a standard 12 volt barrel plug power supply, or a 4-pin ATX power connector.
It also has a built-in gigabit network backplane, so you don't have to use a separate network switch.
The 'master' node is the top slot, and you can use it as a management node, since it has an attached full-size HDMI port and two USB 2.0 ports. You control the entire cluster from it, no other computer required.
And each compute module gets its own 40-pin GPIO header—though the prototype board I used only had four GPIO pins. But the final board has full 40-pin headers for each Pi, so you can integrate Pi HATs for many different projects inside one small package.
The Turing Pi also allows hot-swapping the Pis. So if you want to replace one, or add a new Pi, you don't have to power down the cluster to do it. With my Pi Dramble, hot swapping is a long and delicate process, because I'd have to unmount all the Pis on top of the one I want to swap out.
And since the Turing Pi uses DDR2 SODIMM slots for the Compute Module, it's compatible with all the versions of the Compute Module, from the original model to the newer Compute Module 3 or 3+.
The Turing Pi also includes a 'cluster management bus'. If you enable the master node's I2C interface, you can manage a number of hardware-level options for each Compute Module:
- You can manage the onboard network backplane
- You can power on and off individual Compute Modules
- You can configure the onboard real time clock (which has battery backup)
The Turing Pi also has flexibility for boot options: each of the seven slots gets a microSD slot attached, and four of them have dedicated USB 2.0 ports; the 1st, 2nd, 4th, and 6th slots. Since the Compute Module gives eMMC storage as an option, you can choose from three different ways to boot the Pi, depending on how much you want to spend or what your performance goals are.
And the Pi Compute module can also be booted over the network, so you could either have one Pi run a NAS and boot all the others, or you could have another NAS on your network store the boot data for all the Pis.
Things to Improve
One thing I don't like about the Turing Pi is that the board doesn't have a lot of user-friendly labels and markings. Like you can use the micro USB port to flash the Compute Module in slot 1, but it's not labeled. The jumper that controls how this port works isn't labeled either.
Compare that to this Pi Zero. The Pi Zero is tiny, yet it still has labels printed on the board for all the major parts.
It would be nice if there were at least labels near every port and all the jumpers so you don't have to look up the documentation to see what everything goes to.
Another thing that'd be nice to have is a fan connector in case you wanted to install the Turing Pi in an enclosure that needed active cooling. And a plug for a power indicator and power button would also be nice, so you could integrate the Turing Pi with a mini ITX case's buttons and status lights.
And finally, I heard that there might be a possibility of an IO shield for the Turing Pi. That would make the back of my case look a bit nicer in the back when the Turing Pi is installed.
All in all, the board is put together well, and I didn't have any hardware-related issues to speak of. I'd assume the final production board that's being shipped now is even better quality, since you can see in the picture below, this board's had some history—someone hand-soldered a jumper to fix the operation of this voltage regulator chip:
The Performance of the Turing Pi
For all this flexibility, what good is it if it doesn't perform well?
Well, the Turing Pi allows any of the current Compute Module revisions to perform to their fullest capability. The CPU is only constrained by the fact that the Compute Module is clocked at a maximum of 1.2 GHz. And that's not a limitation of the Turing Pi, it's because the DIMM connection can't provide enough power using the Compute Module's current design to support faster clock speeds.
And the USB and network connections are constrained by the fact that the Compute Module's system-on-a-chip shares a bus for those connections. The built-in gigabit network switch on the Turing Pi means each Compute Module can use it's full 100 Mbps of network bandwidth simultaneously—but you are limited to 100 Mbps per slot.
If you're looking strictly for the best performance possible with a Pi, the Pi 4 is currently a lot faster for most tasks.
The Turing Pi suffers in performance mainly due to the constraints of the older system-on-a-chip the Compute Module uses.
The board itself performs well, and even without a fan, I never had any issues with thermal throttling, even when running benchmarks for a few hours. The thermal image below shows the hottest temperature I could get one of the boards to reach, after running a Drupal benchmark for over an hour:
I think the main reason the temperature control is so good is because the processor is under-clocked, so it doesn't get quite as hot as the chip in the regular Pi 3 B+ did.
The Turing Pi also does well when it comes to energy consumption. While booting, I measured about 15W of power consumption (or 0.2A) at 120V using a Kill-A-Watt. Unfortunately, due to the pandemic, I couldn't get access to any better power measurement device, so the numbers may be a little off, but in general, this board uses even less power than a separate network switch and Raspberry Pi 4s like I use in my Dramble cluster—that combination measures 19-20W during cluster startup.
Compared to even a single Intel-based computer or old laptop that performs the same or even better than the Turing Pi, the Turing Pi is usually going to get the crown when it comes to energy efficiency, if that's your main concern (again, assuming you're not pegging all the CPU cores at 100% all day).
The Price of the Turing Pi
But I think there are two main reasons you might hesitate buying a Turing Pi: the price and shipping delays. The board costs $189, and has been delayed in shipping, mainly due to the pandemic.
The Turing Pi isn't the only hardware device I'm interested in that's been having delays; last month, Ars Technica mentioned the Pinebook Pro was delayed, partly because their manufacturing QA process was stalled by the pandemic. From my conversations with the Turing Machines staff, that's the main reason they've had to delay shipments, too. They wanted to iron out all the little issues so the final production board worked perfectly before they shipped them out.
If they don't do that, then you might end up with some boards having strange hardware issues, and nobody likes buying flaky hardware! That's something that plagued early Pinebook Pros, so I'm glad Turing Machines is taking the time to get the Turing Pi right, and it sounds like that process is almost over.
Even still, if you want to get a Pi cluster up and running quickly today, it's probably going to be faster to buy and put together all the parts for a Pi 4 cluster, like my Pi Dramble.
But say you like all the things the Turing Pi has to offer, why does it cost almost $200, and is that even a good price?
Well, it's complicated.
I spoke with someone from Turing Machines about why the board is almost $189, and the main reason is there are a few expensive parts on the board like the DIMM connectors and the individual ethernet controller chips.
Like the Raspberry Pi, the Turing Pi is built to try to make educational computing hardware—except instead of having one set of components for one computer, the Turing Pi has to have all the parts to run seven computers!
So if you find a good chip that costs $5, like the LAN9514 chip on the underside of the board that is used for the network interfaces on the Turing Pi, you're looking at a $35 cost in those chips alone.
Pair that with the expensive and hard-to-source 200 pin vertical SO-DIMM connector used to hold the Compute Module—which is $10 each—and you're already over $100 in parts per per board.
And that's not including the 300-plus other components on the board, much less the R&D and production costs!
So in the end, is $189 a good price for the Turing Pi? Yes and no. Due to limitations of the Compute Module, it's kind of a minimum floor for the price of a board like this. And I'm guessing Turing Machines isn't making a massive profit, either. Their margins are probably pretty thin on this board.
So it's a good price for the hardware and form factor you're getting, but if you're only interested in getting the best-performing Pi cluster for the money, you'd probably be better off with the Pi 4.
I hope you liked the Raspberry Pi Cluster series featuring the Turing Pi—if you enjoyed it and want me to do more things like it, please consider sponsoring my work:
Also consider subscribing to my YouTube channel, as I'm working on more videos about Raspberry Pis, Kubernetes, Ansible, and more!