1 / 24

MAUI: Making Smartphones Last Longer with Code Offload

MAUI: Making Smartphones Last Longer with Code Offload. Microsoft Research, Duke University ,UCLA, Umass Amherst. Presented by: Aditya Kulkarni. Overview. Motivation What is MAUI? MAUI system design Evaluation Summary Possible Improvements?. Challenges in Mobile Computing.

enid
Download Presentation

MAUI: Making Smartphones Last Longer with Code Offload

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MAUI: Making Smartphones Last Longer with Code Offload Microsoft Research, Duke University ,UCLA, Umass Amherst Presented by: AdityaKulkarni

  2. Overview • Motivation • What is MAUI? • MAUI system design • Evaluation • Summary • Possible Improvements?

  3. Challenges in Mobile Computing • Biggest obstacle in future growth of the smartphones is battery technology • Battery is a scarce resource • Like CPUs, no Moore’s law for battery technology • Over last 15 years, Li-Ion energy capacity improved by 2x vs. CPU by 250x • Battery trends indicate these limitations are here to stay!

  4. Challenges in Mobile Computing • Demand for resource intensive apps • E.g.: Speech recognition, Augmented Reality, Interactive Games • Energy hungry applications! • Consume lot of battery How to solve this impasse? • Possible Solution: • Remote execution of code for saving energy consumption • Approaches: • Full VM Migration • Rely on Progammers

  5. What is MAUI? • Mobile Assistance Using Infrastructure (MAUI) • System for offloading mobile code to nearby infrastructure • Makes dynamic offload decisions • Maximizes energy savings • Minimal burden on programmer • Extensive profiling: network, device, application • Uses managed code environment (Microsoft .NET CLR)

  6. MAUI Architecture Maui Runtime Maui Runtime Client Proxy Server Proxy Application Application RPC Profiler Profiler Solver Solver RPC Maui Controller SmartPhone Maui Server

  7. Programming for MAUI • Minimal effort needed to program for Maui • Maui supports method level granularity • Identify all the “safe” methods in the code and annotate them as “Remoteable” • Criteria for safeness: • Non native calls (GPS,accelerometer) • No UI component involved • No dependence on external components

  8. Example:

  9. Challenges for MAUI • Different CPU architectures (ARM vs. x86) • Automatically identify remoteable methods • Identify and migrate program state to server • Make dynamic offload decisions • Detect and tolerate failures (Timeouts)

  10. Code Portability • MAUI uses .NET CLR • Apps are compiled to CIL intermediate language • MAUI server must have copies of app executables • Gets copies from mobile (consumes energy) • Gets only app signatures from mobile

  11. Code Partitioning • Reflection • Maui runtime uses .NET Reflection API to identify “remoteable methods” • Type Safety • Traverse memory and identify objects needed for state transfer • Uses .NETs XML based serialization

  12. Code Offload Process Maui Runtime Maui Runtime Client Proxy Server Proxy Application Application RPC Profiler Profiler Solver Solver RPC Maui Controller SmartPhone Maui Server

  13. MAUI Profiler • Performs profiling for device, program and network • Generates annotated call graph which is given to the Maui Solver. • Uses past data as predictor for future data

  14. MAUI Profiler CPU cycles Methods duration Old profile data Size of data MAUI Profiler MAUI Solver Annotated Call graph State size NW latency NW bandwidth

  15. MAUI Solver • Determines which remoteable methods to executed remotely vs. locally • Find partitioning strategy to minimize energy consumption • Considers “globalview” of the program’s behavior • Learns from historical behavior of program • Re-run to adapt to changing environment conditions

  16. MAUI Solver • E.g.: Face recognition application InitializeFaceRecognizer 5k mJ 10kMJ UserInterface FindMatch 200mJ 1kmJ 25kMJ DetectAndExtract Faces 15k mJ

  17. MAUI Solver • E.g.: Face recognition application InitializeFaceRecognizer 5k mJ 10kMJ UserInterface FindMatch 200mJ 1kmJ 25kMJ DetectAndExtract Faces 15k mJ Execute Locally

  18. MAUI Solver • E.g.: Face recognition application InitializeFaceRecognizer 5k mJ 10kMJ UserInterface FindMatch 200mJ 1kmJ Execute Locally 25kMJ DetectAndExtract Faces 15k mJ

  19. MAUI Solver • E.g.: Face recognition application ~2800 mJ InitializeFaceRecognizer 5k mJ 10kMJ UserInterface FindMatch 200mJ 1kmJ DetectAndExtract Faces 15k mJ 25kMJ Execute Remotely

  20. MAUI Evaluation • Energy savings • Order of magnitude savings over Wi-fi • 3G code offload more expensive (Video Game, Chess)

  21. MAUI Evaluation • Performance gain • Order of magnitude gains over Wi-fi (Face recognition and Video Game)

  22. Summary • Positive points: • Enables resource intensive apps to run on mobile • Order of magnitude energy savings • Adapts to changing network conditions and program demands • Negative points: • Modification required for existing applications • Does not consider multi-threaded nature of apps • No mention of Security • Depends upon correctness of programmer annotation.

  23. Possible Improvements • Performance depends upon RTT of system • Mobile users keep moving from one place to another • Dynamically switching servers according to user location • Any thoughts?

  24. Questions? Thank You!

More Related