Alec Wolman, Stefan Saroiu, Ranveer Chandra, Victor Bahl – Microsoft Research Eduardo Cuervo – Duke Aruna Balasubramanian – U Mass Amherst Dae-ki Cho -

Slides:



Advertisements
Similar presentations
Eduardo Cuervo - Duke Aruna Balasubramanian - U Mass Amherst Dae-ki Cho - UCLA Alec Wolman, Stefan Saroiu, Ranveer Chandra, Paramvir Bahl – Microsoft Research.
Advertisements

Mobile Cloud Computing: A Comparison of Application Models Group #6 Chandra Shekhar Jammi( ) Venkata Sri Krishnakanth Pulla( ) Prashant Tiwari.
The case for VM based Cloudlets in Mobile Computing
Source: IEEE Pervasive Computing, Vol. 8, Issue.4, Oct.2009, pp. 14 – 23 Author: Satyanarayanan, M., Bahl, P., Caceres, R., Davies, N. Adviser: Chia-Nian.
Mostafa Ammar, School of Computer Science Georgia Institute of Technology Atlanta, GA Mobile Computing in Cirrus Clouds: Mobile Computing in Cirrus Clouds:
Asaf Cidon. , Tomer M. London
ECOS: Leveraging Software-Defined Networks to Support Mobile Application Offloading Aaron Gember, Christopher Dragga, Aditya Akella University of Wisconsin-Madison.
3G v.s WIFI Radio Energy with YouTube downloads. Energy in Mobile Phone Data Transfers In 3G, there are three states –Idle –DCH (Dedicated Channel), do.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
The road to reliable, autonomous distributed systems
Slide Courtesy: Prof. Pradipta De, SUNY Korea Mobile Cloud Computing.
1/30/2015 Just-in-Time Virtual Machine Provisioning for Cloud Offload Kiryong Ha Carnegie Mellon University.
Autonomous Agents-based Mobile-Cloud Computing. Mobile-Cloud Computing (MCC) MCC refers to an infrastructure where the data storage and data processing.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Team 4 Pervasive Computing __________________________________ Abe El-Dewak Sheb Findik Kenneth Brancik Tom Lombardi.
Mobile Assistance Using the Internet The MAUI Project Victor Bahl, Microsoft Research Joint work with Aruna Balasubramanian (Intern, UMASS), Ranveer Chandra,
Communication in Distributed Systems –Part 2
Threads. Processes and Threads  Two characteristics of “processes” as considered so far: Unit of resource allocation Unit of dispatch  Characteristics.
.NET Mobile Application Development Remote Procedure Call.
On Exploiting Dynamic Execution Patterns for Workload Offloading in Mobile Cloud Applications Wei Gao, Yong Li, and Haoyang Lu The University of Tennessee,
Timecard: Controlling User-Perceived Delays in Server-Based Mobile Applications Lenin Ravindranath, Jitu Padhye, Ratul Mahajan, Hari Balakrishnan.
ThinkAir: Dynamic Resource Allocation and Parallel Execution in Cloud for Mobile Code Offloading Sokol Kosta, Pan Hui Deutsche Telekom Labs, Berlin, Germany.
Presenter : Miresh Shukla EEL 6788 ADVANCED TOPICS IN COMPUTER NETWORKS Dr. DAMLA TURGUT.
A Survey of Mobile Phone Sensing Michael Ruffing CS 495.
Adam Blum, Best Practices in Smartphone App Development.
Intelligent Offload to Improve Battery Lifetime of Mobile Devices Ranveer Chandra Microsoft Research.
 Energy Results: Memory Assistant Arcade Game  Performance Results:  Response Time ▪ Memory assistant: 17.3 sec -> 1.5 sec ▪ Arcade game: 6 FPS -> 13.
Ch 1. Mobile Adaptive Computing Myungchul Kim
MOBILE CLOUD COMPUTING
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Computation Offloading
Using Runtime Information for Adapting Enterprise Java Beans Application Servers Mircea Trofin *, John Murphy ** Performance Engineering Laboratory * DCU,
Tufts Wireless Laboratory School Of Engineering Tufts University “Network QoS Management in Cyber-Physical Systems” Nicole Ng 9/16/20151 by Feng Xia, Longhua.
Small Devices on DBGlobe System George Samaras Chara Skouteli.
Improving Network I/O Virtualization for Cloud Computing.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
Sogang University Advanced Computing System Chap 1. Computer Architecture Hyuk-Jun Lee, PhD Dept. of Computer Science and Engineering Sogang University.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
CS533 Concepts of Operating Systems Jonathan Walpole.
Procrastinator: Pacing Mobile Apps’ Usage of the Network mobisys 2014.
AjaxScope & Doloto: Towards Optimizing Client-side Web 2.0 App Performance Ben Livshits Microsoft Research (joint work with Emre.
Timecard: Controlling User-Perceived Delays in Server-Based Mobile Applications Lenin Ravindranath, Jitu Padhye, Ratul Mahajan, Hari Balakrishnan.
Distributed Programming CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
1 Mobile Software Development Framework: Adaptive Mobile Applications 10/23/2012 Y. Richard Yang.
Eduardo Cuervo – Duke University Aruna Balasubramanian - University of Massachusetts Amherst Dae-ki Cho - UCLA Alec Wolman, Stefan Saroiu, Ranveer Chandra,
Manish Kumar,MSRITSoftware Architecture1 Remote procedure call Client/server architecture.
Change Is Hard: Adapting Dependency Graph Models For Unified Diagnosis in Wired/Wireless Networks Lenin Ravindranath, Victor Bahl, Ranveer Chandra, David.
Enhancing Mobile Apps to Use Sensor Hubs without Programmer Effort Haichen Shen, Aruna Balasubramanian, Anthony LaMarca, David Wetherall 1.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Data-Centric Systems Lab. A Virtual Cloud Computing Provider for Mobile Devices Gonzalo Huerta-Canepa presenter 김영진.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
Efficient Opportunistic Sensing using Mobile Collaborative Platform MOSDEN.
Nguyen Thi Thanh Nha HMCL by Ying Zhang, Gang Huang, Xuanzhe Liu, Wei Zhang, Hong Mei, and Shunxiang Yang Refactoring Android Java Code for On-Demand Computation.
A method for using cloud computing for Android By: Collin Molnar.
Application-Aware Traffic Scheduling for Workload Offloading in Mobile Clouds Liang Tong, Wei Gao University of Tennessee – Knoxville IEEE INFOCOM
Exploring Networked Data and Data Stores Lesson 3.
ANDROID AS A SERVER PLATFORM ON CLOUD COMPUTING SONA COLLEGE OF TECHNOLOGY SUBMITTED BY: NAGADEVI PRIYA.G DIVYA PURNIMA.S.S
A service Oriented Architecture & Web Service Technology.
Dynamic Mobile Cloud Computing: Ad Hoc and Opportunistic Job Sharing.
Applications Active Web Documents Active Web Documents.
Implementing Remote Procedure Call
Towards Context Aware Computations Offloading in 5G Anna Reale, Melinda Tóth, Zoltán Horváth ELTE, Eötvös Loránd University, Budapest, Hungary the mobile.
Collaborative Offloading for Distributed Mobile-Cloud Apps
Sentio: Distributed Sensor Virtualization for Mobile Apps
PredictRemainingTime
Remote Procedure Call Landon Cox February 7, 2018.
T IWORK Research topics
Specialized Cloud Architectures
Presentation transcript:

Alec Wolman, Stefan Saroiu, Ranveer Chandra, Victor Bahl – Microsoft Research Eduardo Cuervo – Duke Aruna Balasubramanian – U Mass Amherst Dae-ki Cho - UCLA MAUI: Enabling Fine-Grained Code Offload for Resource-Intensive Smartphone Applications

Enabling Fine-Grained Code Offload Cloudlets & CloneCloud propose VM-based techniques to enable computational offload for mobile handhelds [Satya et al., IEEE Pervasive Computing 2009] [Chun et al., HotOS 2009] MAUI leverages a modern language runtime to enable fine-grained offload, an alternative to VM-based approaches

Smartphone Application Application Partitioning Identify code and data within running program to migrate to server Partitioned Application (Server-Side) Partitioned Application (Client-Side)

MAUI Architecture MAUI Server RPC Smartphone Client Proxy Profiler Solver MAUI Runtime MAUI Controller Application Server Proxy Solver Profiler MAUI Runtime Application

How Does a Programmer Use MAUI? Goal: make it dead-simple for developer to MAUI-ify their application Programmer builds a standalone phone app Programmer adds.NET attributes to indicate “remoteable” Remoteable indicates safe to offload, not should be offloaded MAUI decides at runtime whether to offload, to save energy

MAUI Proxy: Handles Control and Data Transfer MAUI supports fine-grained offload at the method-level At compile time: Find [remoteable] methods Produce client- and server-side stubs for all remoteable methods At run time: Decide whether to invoke local or remote method Perform state synchronization when control transfers (in either direction) Identify what program state to transfer Serialize (deep copy): method parameters, class member variables, public static members Use deltas to reduce the data transfer overhead

Language Run-Time Support For Partitioning Portability: Mobile devices (mostly) use ARM instruction set, servers typically use x86 instructions..NET Framework uses “CIL” – a language independent byte code that is dynamically compiled to the CPU instruction set Type-Safety: Automate state extraction: need run-time type info to follow pointers Reflection: programmatic inspection of the appication binaries Can identify methods with the [remoteable] tag, without parsing the source code Can extract type signatures of remoteable methods, to automate generating RPC stubs

Evaluation of Fine-Grained Partitioning How does MAUI adapt to changes in program behavior and network conditions? We evaluate this using an Arcade game ported to MAUI, using an off-the-shelf physics engine Scenario 1: no missiles, shortly after initialization Scenario 2: 5 missiles, well into the game

Scenario 1: RTT > 10 ms Arcade Game Offload Behavior DoLevel HandleMissiles DoFrame HandleEnemies HandleBonuses Scenario 1: RTT < 10 msScenario 2: RTT < 30 ms Filled oval indicates an offloaded method DoLevel HandleEnemies HandleBonuses HandleMissiles Scenario 2: 30 ms < RTT < 60 ms 11KB + (60 * # missiles) 60 * # missiles 11KB + (60 * # missiles)

Conclusion MAUI uses language runtime support from.NET framework to enable fine-grained code offload Dynamic compilation, type-safety, reflection There is much more to MAUI See our MobiSys 2010 paper for the rest

Backup Slides

MAUI Profiler and Solver Profiler produces annotated call graph Vertex: method annotated with computation energy and delay for execution Edge: method invocation annotated with total state transferred A A B B C C D D L L R R 45mJ, 30 ms 10KB R R R R L L L L L L L Solver identifies “islands” in the call graph, where: Energy cost of data transfer < CPU energy saved w/remote execution

How expensive is online profiling? Expensive part of profiling is estimating size of state transfer

How much can MAUI reduce energy consumption (and improve perf)? For face recognizer, energy consumption reduced by an order of magnitude

Arcade Game Energy Savings Legend (L to R): Smartphone Only 10 ms, Wi-Fi 25 ms, Wi-Fi 50 ms, Wi-Fi 100 ms, Wi-Fi 220 ms, 3G* Energy (Joules) Latency to server impacts the opportunities for fine-grained offload

MAUI Offload Scenarios WLANs are key to effective fine-grained offload High bandwidth, low latency to MAUI servers, energy efficient Offload to the cloud, over 3G: high latency, congestion Enterprise: shared, trusted servers Co-locate MAUI servers with WLAN switches Home: use Wi-Fi to reach trusted desktop PC Public places: Near term: offload to cloud, long latencies Long term: offload to nearby infrastructure (HotSpots)

Why Not Use Static Partitioning? Failure model: when phone is disconnected, or even intermittently connected, applications don’t work Developers need to revisit application structure as device characteristics change The portion of an app that makes sense to download changes based on the latency to the MAUI server

Why is the [remoteable] tag necessary? External side-effects (e.g. purchase an item from the Web): Need to understand if a sequence of I/O calls is undoable This is a very hard problem, unlikely to be addressed with static analysis Limitations of our current implementation: Need to classify calls into.NET Framework built-in APIs as local or remote Internal side-effects: Handling multi-threaded apps & async I/O In the long term, static program analysis should be able to address these limitations

MAUI Partitioning Limitations Failure model: lose contact with server, re-execute from last sync point Limited support for multi-threaded programs & async I/O Methods with external side effects cannot be offloaded E.g. Buying a book from Amazon

Enable Resource-Intensive Apps Augmented Reality Example: Help a person with memory loss Corrective Human Behavior Example : Immediate fact corrections during a speech Mobile Gaming Healthcare Offload analysis of sensed data from body-worn sensors Low end-to-end latency critical for interactive apps These energy-intensive tasks can rapidly drain the battery