Raspberry Pi Cluster Episode 6 - Turing Pi Review

A few months ago, in the 'before times', I noticed this post on Hacker News mentioning the Turing Pi, a 'Plug & Play Raspberry Pi Cluster' that sits on your desk.

It caught my attention because I've been running my own old-fashioned 'Raspberry Pi Dramble' cluster since 2015.

Raspberry Pi Dramble Cluster with Sticker - 2019 PoE Edition

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?"

Turing Pi with 7 Raspberry Pi Compute Modules

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.

Why Pi?

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?

Why U Cluster Raspberry Pis Meme

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?

Raspberry Pi Zero Banana Smile Face

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.

Turing Pi uses less than half the energy of a 60w light bulb

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?

Well, for many people, it's a great option. If you want to build a more traditional cluster built on the Pi 4 model B, I have a parts list and an exhaustive guide on my Raspberry Pi Dramble Wiki.

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

Turing Pi in Mini ITX case

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.

Turing Pi vs Raspberry Pi Dramble Cluster

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

No labels on Turing Pi USB slave port or jumpers

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.

Raspberry Pi Zero with labels closeup

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.

Turing Pi in Mini ITX case with no IO shield

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:

Hand soldered jumper on Turing Pi

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:

Thermal image of Compute Module inside Turing Pi cluster

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.

Kill A Watt Power Consumption showing 15.8W at 120V for Turing Pi

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!

LAN9514 chips on rear of Turing Pi

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!

Conclusion

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!

Comments

You mentioned Pine64... I know you're a Pi-guy but do you have any thoughts on their Clusterboard? It's half the price but I guess they can subsidize it once someone buys 7 SOPine modules, something Turing cannot.

If only there was a common standard so one could mix and match compute modules across vendors. But it makes me wonder if every vendor now includes Pi-compatible GPIO pins, ethernet, video out and USB ports then why isn't the compute module the default form factor for SBCs - keep the chassis (e.g. $15 standalone baseboard for sopine) and just upgrade the module!

I posted a response to a similar question on the YouTube video a few minutes ago, ha! Here it is, slightly tweaked:

There are definitely some tradeoffs. The SOPINE A64 has 2GB of RAM, double that of any current Compute Module, so immediately you get a pretty big benefit there, with a maximum of 14 GB instead of 7 GB of RAM in the cluster. The board itself is also a bit cheaper (at $99) than the Turing Pi, but there are fewer features on the Pine clusterboard than on the Turing Pi—but also benefits like one USB port per slot, whereas the Turing Pi doesn't have USB ports for slots 3, 5, and 7. In the end, I think they are both decent options, but neither would be the best option for raw performance, compared to a traditional Pi cluster or even a decent single X86 CPU.

It would be really nice if all vendors would adopt a standard, so you could have different boards for different purposes but they all work with any vendor's "compute module thing".

Hi,
I wanted to try installing my own kubernetes cluster for educational purposes. I started with the installation on my rPi as instructed by your video guide using Ansible playbook to set the cluster up. I have a K3S with a master node and two workers. But something in my configuration is not right since when I type kubectl get nodes I am getting an error.
Unable to connect to server: X509: certificate signed by unknown authority. I think there is something wrong in the ~/.kube/config but i dont know how to fix it. All my nodes use an SSH key generated with PuttyGen to access them.
Can you help me fix the problem?
Thank you