250 likes | 564 Views
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.
E N D
MAUI: Making Smartphones Last Longer with Code Offload Microsoft Research, Duke University ,UCLA, Umass Amherst Presented by: AdityaKulkarni
Overview • Motivation • What is MAUI? • MAUI system design • Evaluation • Summary • Possible Improvements?
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!
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
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)
MAUI Architecture Maui Runtime Maui Runtime Client Proxy Server Proxy Application Application RPC Profiler Profiler Solver Solver RPC Maui Controller SmartPhone Maui Server
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
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)
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
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
Code Offload Process Maui Runtime Maui Runtime Client Proxy Server Proxy Application Application RPC Profiler Profiler Solver Solver RPC Maui Controller SmartPhone Maui Server
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
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
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
MAUI Solver • E.g.: Face recognition application InitializeFaceRecognizer 5k mJ 10kMJ UserInterface FindMatch 200mJ 1kmJ 25kMJ DetectAndExtract Faces 15k mJ
MAUI Solver • E.g.: Face recognition application InitializeFaceRecognizer 5k mJ 10kMJ UserInterface FindMatch 200mJ 1kmJ 25kMJ DetectAndExtract Faces 15k mJ Execute Locally
MAUI Solver • E.g.: Face recognition application InitializeFaceRecognizer 5k mJ 10kMJ UserInterface FindMatch 200mJ 1kmJ Execute Locally 25kMJ DetectAndExtract Faces 15k mJ
MAUI Solver • E.g.: Face recognition application ~2800 mJ InitializeFaceRecognizer 5k mJ 10kMJ UserInterface FindMatch 200mJ 1kmJ DetectAndExtract Faces 15k mJ 25kMJ Execute Remotely
MAUI Evaluation • Energy savings • Order of magnitude savings over Wi-fi • 3G code offload more expensive (Video Game, Chess)
MAUI Evaluation • Performance gain • Order of magnitude gains over Wi-fi (Face recognition and Video Game)
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.
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?
Questions? Thank You!