Intel Galileo vs PC vs Arduino

2014-01-29

Update: Please see the new benchmark by James Doulton.

I happened to get a new Intel Galileo board, which is compatible with Arduino. It is much faster than a classic Arduino, but I didn't know how much faster it is, or how much slower it is with respect to a normal x86 PC.

Galileo vs PC

Benchmarks are lacking, so I rewrote the n-body problem from the Computer Language Benchmarks Game for Arduino. It is a single-threaded low-memory floating-point number-crunching benchmark. This is its Arduino sketch:

It repeats the same benchmark indefinitely and prints results to the serial console. It was compared against “Java7 #2 single core” implementation:

Compared to common desktop CPUs, Galileo is much slower at number crunching. Something like two orders of magnitude slower. A thing to keep in mind on what's possible to do in real time on this hardware.

Hardware Software Iterations Time, ms Time/Iter, us
Intel Galileo nbody.ino 5000000 282265 56.45
Core i5 650 nbody.java 50000000 13993 0.28
Core i7 2600 nbody.java 500000000 78282 0.16

Galileo vs Arduino

If I procure a classic Arduino, I'll update the post. From inconclusive benchmarks run by someone else, and my attempt to repeat them on Galileo, it appears that Galileo is at least 50 times faster than Arduino Due on a similar low-memory task with lots of floating-point operations:

Hardware Time, ms Iterations Time/Iter, us
Arduino 6249 100000 62.49
Arduino Due 1785 100000 17.85
Intel Galileo 6279 20000000 0.31

And this means there is a whole world of new possibilities to explore.