  Choosing an appropriate programming paradigm for high-performance computing
on low-power devices can be useful to speed up calculations. Many Android
devices have an integrated GPU and - although not officially supported - the
OpenCL framework can be used on Android devices for addressing these GPUs.
OpenCL supports thread and data parallelism. Applications that use the GPU must
account for the fact that they can be suspended by the user or the Android
operating system at any moment. We have created a wrapper library that allows
to use OpenCL on Android devices. Already written OpenCL programs can be
executed with almost no modification. We have used this library to compare the
performance of the DBSCAN and Kmeans algorithms on an integrated GPU of an
Arm-v7 tablet with other single and multithreaded implementations on the same
device. We have investigated which programming paradigm and language allows the
best tradeoff between execution speed and energy consumption. Using the GPU for
HPC on Android devices can help to carry out computationally intensive machine
learning or data mining tasks in remote areas, under harsh environmental
conditions and in areas where energy supply is an issue.
