Towards computational offloading in mobile device clouds

With the rise in mobile device adoption, and growth in mobile application market expected to reach $30 billion by the end of 2013, mobile user expectations for pervasive computation and data access are unbounded. Yet, various applications, such as face recognition, speech and object recognition, and natural language processing, exceed the limits of standalone mobile devices. Such applications resort to exploiting larger resources in the cloud, which sparked researching problems arising from data and computational offloading to the cloud. Research in this area has mainly focused on profiling and offloading tasks to remote cloud resources, automatically transforming mobile applications by provisioning and partitioning its execution into offloadable tasks, and more recently, bringing computational resources (e.g. Cloudlets) closer to task initiators in order to save mobile device energy. In this work, we argue for environments in which computational offloading is performed among mobile devices forming what we call a Mobile Device Cloud (MDC). Our contributions are: (1) Implementing an emulation testbed for quantifying the potential gain, in execution time or energy consumed, of offloading tasks to an MDC. This testbed includes a client offloading application, an offloadee server receiving tasks, and a traffic shaper situated between the client and server emulating different communication technologies (Bluetooth 3.0, Bluetooth 4.0, WiFi Direct, WiFi, and 3G). Our evaluation for offloading tasks with different data and computation characteristics to an MDC registers up to 80% and 90% savings in time or energy respectively, as opposed to offloading to the cloud. (2) Providing an MDC experimental platform to enable future evaluation and assessment of MDC-based solutions. We create a testbed, shown in Figure 1, to measure the energy consumed by a mobile device when running or offloading tasks using different communication technologies. We build an offloading Android-based mobile application and measure the time taken to offload tasks, execute them, and receive the results from other devices within an MDC. Our experimental results show gains in time and energy savings, up to 50% and 26% respectively, by offloading within MDCs, as opposed to locally executing tasks. (3) Providing solutions that address two major MDC challenges. First, due to mobility, offloadee devices leaving an MDC would seriously compromise performance. Therefore, we propose several social-based offloadee selection algorithms that exploit contact history between devices, as well as friendship relationships or common interests between device owners or users. Second, we provide solutions for balancing power consumption by distributing computational load across MDC members to elongate and MDC's life time. This need occurs when users need to maximize the lifetime of an ensemble of devices that belong to the same user or household. We evaluate the algorithms we propose for addressing these two challenges using the real datasets that contain contact mobility traces and social information for conference attendees over the span of three days. Our results show the impact of choosing the suitable offloadee subset, the gain from leveraging social information, and how MDCs can live longer by balancing power consumption across their members.