There have been a few articles floating around online over the last few years about building a cluster of computers at home - here for example.

The Pi strikes me as a good platform for building / testing this kind of thing due to their low cost; should "generic" guides like this transfer over to the Pi pretty easily, or is there anything specifically I should be aware of when attempting such a project?

  • 3
    Related forum thread: raspberrypi.org/phpBB3/viewtopic.php?p=18356#p18356
    – finnw
    Commented Jun 12, 2012 at 21:50
  • I've added the tag "bramble" as this is what these are named. Can't give a proper answer beyond "put a bunch together and run hadoop or something like that" - indeed, I've favved the question to watch for answers myself!
    – winwaed
    Commented Jun 12, 2012 at 23:48
  • Other Pi users also don't know about the magic word "bramble"; searching the Foundation's forum might have helped but it's often slow to respond so I won't down-vote you.
    – mlp
    Commented Jun 14, 2012 at 0:57
  • 4
    University of SouthHampton have produced steps to make a 64 pi cluster (or "supercomputer"): southampton.ac.uk/~sjc/raspberrypi/…
    – Alex L
    Commented Sep 12, 2012 at 13:53

7 Answers 7


I suggest looking at Dispy - the distributed computation python module.

To run a program on a number of Raspberry Pi's (nodes) from a PC (server - assume IP is

  • Install an operating system on each RasPi

  • Attach each RasPi to your network. Find the IP (if dynamic), or set up static IPs.
    (Let's assume that you have three nodes, and their IPs are

  • Set up Python (if not already), install dispy, then run dispynode.py -i on each RasPi. This will tell dispynode to receive job information from the server.

  • On the PC (the server), install dispy, then run the following python code:

#!/usr/bin/env python
import dispy
cluster = dispy.JobCluster('/some/program', nodes=['', '', ''])

You can also replace /some/program with a python function - e.g. compute.

You can also include dependencies such as python objects, modules and files (which dispy will transfer to each node) by adding depends=[ClassA, moduleB, 'file1']

  • 8
    I'd love to hear if someone has done this - please leave a comment letting me know if it works!
    – Alex L
    Commented Jun 15, 2012 at 9:48
  • In my case (openelec + python 2.7) I get this error "File "./Lib/multiprocessing/__init__.py", line 84, in <module>, ImportError: /usr/lib/python2.7/lib-dynload/_multiprocessing.so: undefined symbol: SemLockType".
    – Guido
    Commented Mar 13, 2013 at 21:40
  • But dispy3-3.6 runs with wheezy + python3 ! 2013-03-13 23:01:30,664 - dispynode - serving 1 cpus at When you launch a task (i.e. /bin/ls) the node receives the task, moves the executable to /tmp, but something goes wrong "Executing ['/tmp/dispy/b7e04cb4a1e144e1/ls'] failed with (<class 'OSError'>, OSError(8, 'Exec format error'), <traceback object at 0x16f2580>)"
    – Guido
    Commented Mar 13, 2013 at 23:45

You should be aware of the work that has already been done - there's even a name for a cluster of RasPi boxen. The Embedded Linux Wiki says a Bramble is defined as "a Beowulf cluster of Raspberry Pi devices". Raspberry Pi Homebrew has a number of posts about Brambles, and see also the Foundation's own forum.

  • 14
    I do not think telling someone to google the answer is good for this site. It is useful to know the name but consider adding some content and reference links to your answer.
    – Joe
    Commented Jun 12, 2012 at 23:47
  • Content and links added, @Joe. It would be nice if the downvoters now reassessed their opinions ...
    – mlp
    Commented Jun 14, 2012 at 0:59
  • 1
    I would if I actually downvoted you...
    – Joe
    Commented Jun 14, 2012 at 3:00
  • I phrased it very carefully to avoid insinuating that you had, Joe. Perhaps they don't realise that votes here can be undone by re-clicking the same button, not just reversed by clicking the opposite button.
    – mlp
    Commented Jun 15, 2012 at 0:56

Some guys at Southampton Uni have put together a cluster and written a detailed overview of their work at http://www.southampton.ac.uk/~sjc/raspberrypi/.

  • 2
    Rep whore :P
    – Alex L
    Commented Oct 18, 2012 at 8:54
  • Actually, there is a lot to learn from this project using MPI. I am buidling my experiments based on these guy's work. I would recommend marking this answer the correct answer for the question.
    – benqus
    Commented Dec 14, 2012 at 17:16

It is completely possible, but the biggest problem is attainability. It is an idea I would not only think workable, but useful as you could go with the idea of portable parallel computing. As far as specifics, coding languages like FORTRAN and C++ will do best.

Look at beowulf.org for more on cluster computing


This is reply to Guido Garcia's post above regarding 'dispy' - I can't figure out how to reply to his post.

When a program ('/bin/ls') is distributed with 'dispy' for parallel execution, then that program on the client machine is transferred to each of the nodes (to '/tmp'). This is so that the user developed program on the client machine is transferred without having NFS or some shared diretory. This works with binary programs only when nodes and client architectures are compatible. In your case, I am guessing that client architecture is different from that of the remote nodes and a node can't execute the binary '/bin/ls' transferred from the client. If you want to execute /bin/ls on each node, it may easier to write a Python function or program to print the directory (e.g., using os.listdir) and distribute that instead of binary executable.

  • You need 50 reputation to leave comments on other peoples answers/questions. Welcome though!
    – Impulss
    Commented Mar 21, 2013 at 3:02

There's also http://pi.interworx.com if you want a full featured control panel with it. They have instructions up on this page on how to replicate, but you'll have to be patient as that subdomain tself is running from a Rasberry Pi cluster. Here's a photo in case it goes down:



The main options I see for cluster management on Raspberry Pi are; Docker Swarm k3s and microk8s. I found Docker Swarm easiest to set up and work with (using RPi 3Bs), and adequate for my purposes. The Kubernetes options were also fairly straightforward to set up though.

Set up guides:

Docker Swarm



Another "vanilla" way of doing it would be to create a script that scp copies dockerfiles then ssh connects to the hosts in turn and then runs them in turn.


I found I needed to install extra modules (on Ubuntu 22, 3B) to get swarm mode to work seamlessly:

sudo apt install linux-modules-extra-raspi

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.