  High performance computing for low power devices can be useful to speed up
calculations on processors that use a lower clock rate than computers for which
energy efficiency is not an issue. In this trial, different high performance
techniques for Android devices have been compared, with a special focus on the
use of the GPU. Although not officially supported, the OpenCL framework can be
used on Android tablets. For the comparison of the different parallel
programming paradigms, a benchmark was chosen that could be implemented easily
with all frameworks. The Mandelbrot algorithm is computationally intensive and
has very few input and output operations. The algorithm has been implemented in
Java, C, C with assembler, C with SIMD assembler, C with OpenCL and scalar
instructions and C with OpenCL and vector instructions. The implementations
have been tested for all architectures currently supported by Android. High
speedups can be achieved using SIMD and OpenCL, although the implementation is
not straightforward for either one. Apps that use the GPU must account for the
fact that they can be suspended by the user at any moment. In using the OpenCL
framework on the GPU of Android devices, a computational power comparable to
those of modern high speed CPUs can be made available to the software
developer.
