Overclocking an android phoneI keep coming back to looking for opportunities to teach experimental design in a different manner than “one variable at a time.”  Today’s example is overclocking an android phone.

Once you have rooted your device (the Android equivalent of the iPhone jailbreak) you can start to play with the CPU settings in order to squeeze every last drop of speed / performance out of the handset. This is commonly called overclocking – and it has a long heritage in the PC community.

Sure it can go wrong, kill the phone and eat batteries alive — but that’s part of the fun of getting the settings right.  So…..

You can change:

  • Minimum CPU speed
  • Maximum CPU speed
  • CPU Governor (how fast the cpu changes up or down in speed)
  • I/O Scheduler (how the CPU organises memory read / writes)
  • SD Card Cache (how much “buffer” memory is used to smooth out SD card read / writes)

I wanted to explore each factor at 3 possible levels as I felt this would lead to reasonable understanding of what’s happening and it is the least number of levels to see if there are any “non linear” effects.

5 factors at 3 levels needs 3^5 or 243 experiments to cover every combination of factor and level.  As a good experimenter  I want to also complete x3 replicates — 729 experiments.  Not only will I loose the will to live before I complete them all, I am also likely to kill my phone handset after so many changes.

I need another way.

A Taguchi Orthogonal Array is the way forward

This allows you to assess the Main Effects of a larger number of factors quickly, in the minimum number of experiments.  In fact my 243 is reduced to 27.  With x3 replicates, that is a manageable 81 experiments.

Taguchi designed his methodology on optimising an engineering or industrial process. This is ideal for my requirements – I want to maximise the performance of my handset.
The Taguchi Orthogonal Array is coded as follows:
Overclocking an Android Phone with Taguchi
I measured the performance of the handset under each of the conditions as indicated in the Taguchi Array and replicated the entire experiment three times.
The results produced the following Main Effects:
Clearly CPU speed has the greatest impact.
I ran a General Linear Model of these factors and Min, Max, Governor and I/O were all significant to p=0.000 and SD Card to p=0.065.
Whilst my BTEC class did not need to understand where the L27 Array came from, they bought into the fact that we could USE it to quickly compile the Main Effects and what the significance for the p value was from the GLM.
I do wonder if sometimes we (teachers) spend too much time insisting that our learners commit algorithms to memory instead of understanding how to actually apply them and act on the consequences.