I’ve previously written about the floating point performance of the raspberry pi using the Raspbian linux distribution. The foundation have released a new image, dated 2012-09-18, which supports overclocking, so I’ve been having a play with that to see difference overclocking makes in practice to stochastic simulation codes written in C.
First of all, the new image is worth upgrading to, regardless of whether or not you are interested in overclocking. It is just a bit better, a bit less buggy, a bit slicker, etc. For example, if you use the little Edimax wifi dongle that is very popular on the Pi, there is support for this out of the box, and there is now a GUI wifi config tool for provided on the X desktop. Similarly, although I haven’t tried it out yet, it looks as though the Python GPIO libraries are bundled as a standard part of the distro. The “raspi-config” tool is also a bit better and more useful, and now included overclocking options, of which more later.
Before I get on to that, first let me have a little gripe about support for “composite video”. The Pi has HDMI output, and that is great, if you have an HDMI device to connect it to. But it is also supposed to support “composite video” – that is, the familiar yellow coax video connection. It does, in the sense that if you connect up to it, it gives a picture. But it isn’t supported properly, in that most of the X clients bundled as standard don’t work properly with the reduced resolution you have with a composite video connection. The wifi setup tool is a perfect example of this, where to get it to connect to my network, I had to enter keys into a dialog box which didn’t fit on the screen. The only way I could connect was by guessing appropriate keyboard shortcuts to select the OK button which I couldn’t see… In fact, I really don’t want to have to run an X server to set up wifi anyway. A simple console based config utility would be much better, and would save having to hook up a mouse. This is an important issue, since there are only two USB ports on the Pi, so if you already have a wifi dongle and keyboard hooked up, hooking up a mouse requires a powered USB hub… Anyway, enough griping, this is supposed to be about floating point and overclocking…
In the previous post I explained that on an experimental pre-release (slightly overclocked) version of Raspbian, my test code ran in 2 minutes 10 seconds (compared to 56 seconds on my netbook). However, on the first official release of Raspbian, the code took around 2 minutes 30 seconds. So, I was very interested to see how things compared with the new Raspbian release. With no overclocking enabled, the code took around 2 minutes 20 seconds. There are several overclocking options, and I’ve only tried “Medium” (in the middle) and “Turbo” (the highest setting). With the medium setting, the code takes around 1 minute 50 seconds, and with the turbo setting, it is more like 1 minute 40. So, these both represent a significant improvement over the default setup, but there wasn’t as much difference as I would have hoped between the medium and turbo overclocking settings. This suggests to me that the medium overclocking option is likely to be a good compromise unless you are really desperate to get every last FLOP out of your Pi.