Hi all,
I’ve been struggling with Mathematica on a Raspberry Pi for a couple or three years and I’d like to know more about how it works to figure out why. I’m using a Pi as it was a cheap start, it’s also brought the missing fun back into computers so I’m sticking with it.
My first problem was that beyond working as four function calculator, it wouldn’t work without WiFi; so I had to buy a dongle. Specifically it was factorials that bombed. This raises the question of does it work locally or in the cloud and when?
Second was timeouts, I keep writing code that needs days to run, sometimes for three weeks. Once I solved the power integrity, it took ages to learn that the code was not completing. I suspected maybe it was running in the cloud somewhere. Is that so?
Third, and last for now; I thought I’d try clusters and after days of work got a cluster going. However, I have no way of working out if it is being used by Mathematica, or if I have to change my code. In fact, so far; I can’t even tell if the internal bench marking tool will work on a cluster. I’ve learned it won’t run on any Pi with 512 MB of RAM, and that it is 6 times since I started with V10. But how do I use a cluster, and how do I tell if it is contributing?
Thanks to those who can help, David
Cloud:
Everything works locally, unless you use cloud-specific functions (e.g. CloudEvaluate). Curated data (functions like GraphData) and the Entity stuff is downloaded from the cloud, and need an internet connection. This is just data though, it’s not computation.
Benchmark:
The benchmark does not use clusters automatically.
Clusters:
This helps only when you use the parallel tools (functions like ParallelTable). Parallel Computing Tools User Guide—Wolfram Documentation
You would also need to set everything up first, and unfortunately not documented in great details. See here: Launching and Connecting—Wolfram Language Documentation I guess you would need to define the remote kernels using RemoteMachine, and add them to $ConfiguredKernels before you can just use LaunckKernels and have everything work.
You would need to set up a way to launch executables seamlessly on all the nodes. One way is to set up public key SSH authentication, so you can run remote commands without entering a password as ssh machineName command. Then adjust the templates inside RemoteMachine as necessary.
Expect to spend a few hours before you manage to get all this working smoothly for the first time.