3

Can i somehow combine 2 Pi's so i have a better CPU speed? I'm new to this so a link to some tutorials (if possible) would be nice

I know you can create a cluster for a database so you can scale it, but is this possible for the whole system?

Thanks!

3 Answers 3

4

No you can't combine 2 Pi's to have better CPU speed. Any software designed for a cluster must be specifically written to do so.

If you haven't already I suggest buying a Pi3B+, it is noticeably quicker than a Pi3B.

3

It can be a common misconception that you can sort of just bootstrap machines together and get greater performance. Sadly when it comes to building clusters, especially of raspberry pi's the use cases become pretty niche, and limited. This is the kind of thing that you would be building. While making one of these can yield better performance, it can only do so when applied to certain problems, and even then, you wouldn't see an immediate increase in speed or anything. Having a cluster really just allows for you to divvy up computation to a greater amount of cores. Code that you want to run on said cluster would have to be written specifically to be parallelized, and run on multiple machines using some kind of framework, the most popular being MPI (Message Passing Interface).

Raspberry Pi's are not the ideal candidates for these kind of clusters either. On top of not having great performance to begin with, you would would be getting tremendous bottlenecks as a result of slow IO (depending on which version of the RPI). That isn't to say you shouldn't build a cluster if you wanted to, they can be a great learning experience and a lot of fun to mess around with, just know if you are looking for performance improvements you might consider looking else where.

2

You'll never achieve a better per-process performance - you can't double the clock speed of a single Raspberry Pi in that way.

Depending on the software that you want to run, you can create a cluster of Pi's which communicate with each other (probably via the Ethernet interface) to run certain tasks, and these tasks can then be run in parallel on every node in the cluster. In other words: you can achieve horizontal scalability (more nodes in a cluster), not vertical scalability (a single node can never be made faster).

Google around for 'Docker Swarm on a Raspberry Pi Cluster' for example, there are numerous examples and projects out there. Docker is a piece of software that allows you to run containers (small 'virtualized' applications), any piece of software that is containerized in a Docker image (see www.docker.com and this article) can then be run either on a single Pi, or in a redundant fashion on a cluster of Pi's.

Note: I completely agree with @drewrip's answer: Raspberry Pi's are not the ideal platform for this - they have some limitations which you must be aware of. You can read about some of the drawbacks (w.r.t. the OS, the flash drive, power management etc.) here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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