Does it make sense to use Pi cluster for real computation?

My use case is to carry out intensive computation tasks 24/7. The tasks are pleasantly parallel, and there will be minimum inter-node communication. Most of the computation will be in double precision.

Will it make sense to use Pi cluster? How many Pis do we need to beat a single multi-core workstation? (e.g. a Threadripper system) At that point, will I be saving money?

  • Well, Rpi3 has 4 cores to do multiprocessing. And can you make use of Pi's GPU? And perhaps the coming Pi4 has 6 cores. Do you need big memory? Too many things to trade off, so balancing is a moving target. My US$800 i5 geForce Win10PC is perhaps 20 times Rpi. But it makes more money than I can save with Pis. – tlfong01 Jun 23 '19 at 1:07

Los Alamos Labs in U.S.A certainly use RPi clusters. In 2017 they had a cluster of 3,000 Rpi cores and were looking to expand to 40,000 cores. The intent was to model new models of distributed computing for their Trinity supercomputer but at a much lower cost. The infrastructure they developed to host their cluster is now available COTS as Bitscope blades and server racks.

Distributed computing is possible on much smaller clusters, and is made even easier by the fact that Wolfram provide Mathematica, free of charge on each Pi, which supports distributed computing out of the box. Other distributed models are possible including Hadoop and, my favourite for handling streaming sensor data, Apache Flink.

The new Pi 4 may be beginning to eat into the performance domain of low end desk top PCs. So a cluster of four costing around £2-300 fully specced may offer similar performance and certainly much more flexibility esp. for sensor data processing. You can't build and power a sixteen core PC cluster off a car battery and leave it outside in all weathers.

| improve this answer | |

I like Nick's answer. Could you afford the wonderful CRAY nodes? maybe, but that doesn't mean you should rush into it before you've developed an algorithm and tested it over a cluster. So, if cost/timing is relevant, then a Pi cluster could function as a low-cost testbed to help you work through the project cycle (and reusable).

One thing we might do with a small cluster or large cluster is simply network it with other "heterogeneous" nodes. This just means that you can have many different machines, maybe you add a couple compute nodes with SLI'd GPUs for certain tasks. Some applications would benefit.

Might help to think about what the purpose of the cluster is. General compute? problem specific?

At Disney, there are teams of engineers (applied mathematicians and computer scientists mostly) who devise how and where different pieces of their large puzzle are to be rendered. They have over 100,000 nodes that need to render frames for multiple films in a single year. They've automated the process so that their farm is always being used. If you can build a pi cluster that does enough work for you to survive a year while constantly being under workload (because you've always scheduled rendering tasks), then it might be a very cost effective way to build a cluster. It's only another $100 to add a bit more compute when you have more work to do than your capacity. This is only 1 strategy.

I don't know what the limit of RAM is on one of these. I know the Pi 4 has 4GB option, but I don't have the chops to stick in a bigger stick on one of these boards.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.