Only available on StudyMode
  • Download(s): 92
  • Published: December 8, 2012
Read full document
Text Preview
In recent years, weak mobile devices such as smartphones, mobile Internet devices, and netbooks have become popular. Examples include the Apple iPhone [2], Google Android Phone [1, 7], RIM Blackberry Phone [3], and netbooks from several vendors. Tablets are also gaining attraction thanks to Apple’s new iPad [6]. Moreover, weak devices are embedded in vehicles and TVs (e.g., Ford SYNC [4] and Google TV [5]). These devices support exciting new applications that provide a connected Internet experience to users. Now users manage their Facebook and Twitter notifications; capture, edit, and upload photos and videos; handle their finances; and play computer games. Users also have growing demand for running more resource-demanding applications, the kinds of applications they run on laptops or desktops, such as rich media applications using diverse inputs like cameras and sensors. Examples include photo and video editing and synthesis, 3D modeling for constructing avatars, scene recognition, object recognition, image search, and augmented reality [12, 13, 18, 23]. Currently these applications running on weak devices are structured such that they are statically partitioned between the weak device and a server running in the cloud. Two representative application partitions are as follows. First, most of an application’s processing is done at the server(s) in the

cloud, and the end-user device runs simple tasks such as UIs, acting like a thin client. For example, Facebook and Tweeter clients belong to this category. Second, most of an application’s processing is performed at the client as exhibited in interactive, graphics-intensive games. These different partitions incur different costs (e.g., execution time, energy consumption, etc.). However, partitioning applications statically does not provide optimal user experience as more and more applications are used in diverse environments and inputs. That is, there is no single partitioning that fits all due to environment heterogeneity (device, network, and cloud) and workload. Furthermore, there are many partitioning choices. For example, for an application that runs both on an Android phone and on an Android netbook, the application may run better in each device by using different partitioning between device and cloud. An Android phone application may run better in different network types by using different partitioning that incurs different computing and communication cost. Our vision is a system that can seamlessly adapt to different environments and workloads by dynamically instantiating what partitioning to use between weak devices and clouds. In Section 2, we argue for the case for dynamic partitioning for different environments and workloads. Section 3 presents our formulation of dynamic partitioning problems, and Section 4 presents the system support for dynamic partitioning and key research challenges at a high level. We discuss related work in Section 5 and conclude in Section 6.



Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. MCS June 15, 2010, San Francisco, CA, USA. Copyright 2010 ACM 978-1-4503-0155-8 ...$10.00.

To facilitate our discussion, we take an example application that performs image matching algorithms used for image search, object recognition, and augmented reality. Image matching consists of multiple processing stages in sequence — image feature generation, similarity calculation against a database, and classification. The feature generation stage such as SIFT [18] or SURF [8] is further composed of keypoint extraction, local computation to decide...
tracking img