Raspberry Pi

What's not to like about the Raspberry Pi? It's very inexpensive, runs Python, and is fun! Wolfram now even provides Mathematica for free. Wow!

The RPi can also run Python (and its rich ecosystem of 3rd party packages).


Here's the same surface from Mathematica above, using numpy and matplotlib:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

X = np.arange(-3, 3.2,.25)
Y = np.arange(-2, 2.2,.25)
X, Y = np.meshgrid(X, Y)
Z = np.sin(X + Y**2)
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='cool', linewidth=1, antialiased=True)
ax.set_zlim(-3.01, 3.01)

fig.colorbar(surf, shrink=0.5, aspect=1)
plt.show()

Distributed Computing

Something else you can do on your Pi is build an MPI library and create a cluster, as has already been reported on the web (here and here). Here's my own proof of concept after building mpich (from source):
pi@raspberrypi ~/mpich_build/examples $ mpirun -np 4 ./cpi
Process 3 of 4 is on raspberrypi
Process 2 of 4 is on raspberrypi
Process 0 of 4 is on raspberrypi
Process 1 of 4 is on raspberrypi
pi is approximately 3.1415926544231239, Error is 0.0000000008333307
wall clock time = 0.110020