In the last months I’ve heard and read about many people trying to get MPI parallel computing systems running on ARM microcontrollers. Of course this is a good idea. This allows us to build clusters that consumes less energy.
Well, I decided to give it a try and started trying to compiled OpenMPI for the ARM Cortex A9. After some tries I gave up and started trying mpich2. Well, it worked. Here’s the prove:
root@pandaboard:~/mpich2-1.4.1/examples# mpirun -hosts
192.168.1.123,192.168.1.117 -l -n 4 ./cpi 100 0
 Process 0 of 4 is on pandaboard
 Process 2 of 4 is on pandaboard
 Process 3 of 4 is on opportunity
 Process 1 of 4 is on opportunity
 pi is approximately 3.1415926544231252, Error is 0.0000000008333321  wall clock time = 0.005402
That’s a MPI program (just a simple one) running on an ARM Cortex A9 (PandaBoard). Even more interesting is that I compiled “cpi” for both ARM and x86 architectures with mpicc. This means that the nodes of this 2-machine-cluster is made of one ARM and one x86 (opportunity). Here we have a program running in a cluster where the nodes have different architectures!
By the way, mpich2 worked like a charm on the PandaBoard (after some tricks)