If all you need is to be able to use multiple Raspberry Pi computers (or any other computer really) for parallel computation, you can do this using built-in functionality.
If you prefer to use the GUI to set this up, go Preferences -> Parallel -> Remote Kernels.
Click Add Host, and fill out the details. First, fill out the hostname. Then, depending on your setup, you may need to modify the launch command template. You will notice that those numerical slots, like `1`
in the launch command template. To find out what they are, evaluate
<< SubKernels`RemoteKernels`
?$RemoteCommand
It is important to use a launch command that will not prompt for a username and password. For this, you will need to set up SSH public key authentication (please google for it).
You may also need to tell Mathematica the username on the remote machine. Load << SubKernels`RemoteKernels`
then set $RemoteUser
.
Personally, I have not used this GUI method. Instead, I configured remote kernels by typing commands.
I did this by loading << SubKernels`RemoteKernels`
, then creating a configuration for each remote computer in the form
x = RemoteMachine[hostname, launchcommand]
The launch command can either be a template like in the GUI configuration (i.e. have slots like `1`
in it), or just a plain string (no slots). One you have all these, just append them to $ConfiguredKernels
$ConfiguredKernels = Join[$ConfiguredKernels, {x}]
Once everything is set up, you can simply use LaunchKernels[]
and submit parallel evaluations as usual (e.g. ParallelSubmit
).
I realize that this is a bit vague, but I do not have a Raspberry Pi at hand to give more detailed instructions. I hope it is still helpful.