As mobile devices, such as smartphones, take on a larger role in our lives, they need to handle more complicated tasks and computations. With limited computational, energy and storage resources ...