Last Longer With Code Offload Eduardo Cuervo Duke Aruna Balasubramanian U Mass Amherst Daeki Cho UCLA Alec Wolman Stefan Saroiu Ranveer Chandra Paramvir Bahl Microsoft Research ID: 738210
Download Presentation The PPT/PDF document "MAUI: Making Smartphones" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
MAUI: Making Smartphones Last Longer With Code Offload
Eduardo Cuervo
-
Duke
Aruna Balasubramanian - U Mass Amherst
Dae-ki
Cho - UCLA
Alec Wolman, Stefan Saroiu, Ranveer Chandra,
Paramvir
Bahl – Microsoft ResearchSlide2
Battery is a scarce resource
CPU performance during same period:
24
6XA solution to the battery problem seems unlikely
Just 2X in 15 yearsSlide3
Mobile apps can’t reach their full potential
Augmented Reality
Speech Recognition and Synthesis
Interactive Games
Slow, Limited or Inaccurate
Too CPU intensive
Limited
Power Intensive
Not on par with desktop counterpartsSlide4
One Solution: Remote Execution
Remote execution can reduce energy consumption
Challenges:
What should be offloaded?How to dynamically decide when to offload?How to minimize the required programmer effort?Slide5
MAUI: Mobile
A
ssistance
Using InfrastructureMAUI Contributions:Combine extensive profiling with an ILP solverMakes dynamic offload decisionsOptimize for energy reductionProfile: device, network, application
Leverage modern language runtime (.NET CLR)To simplify program partitioningReflection, serialization, strong typingSlide6
RoadmapMotivation
MAUI system design
MAUI proxy
MAUI profilerMAUI solverEvaluationConclusionSlide7
Maui server
Smartphone
Application
Client Proxy
Profiler
Solver
Maui Runtime
Server
Proxy
Profiler
Solver
Maui Runtime
MAUI Architecture
Application
RPC
RPC
Maui ControllerSlide8
How Does a Programmer Use MAUI?
Goal: make it dead-simple to MAUI-
ify
appsBuild app as a standalone phone appAdd .NET attributes to indicate “remoteable”Follow a simple set of rulesSlide9
Language Run-Time Support For Partitioning
Portability:
Mobile (ARM)
vs Server (x86).NET Framework Common Intermediate LanguageType-Safety and Serialization: Automate state extractionReflection: Identifies methods with [Remoteable] tagAutomates generation of RPC stubsSlide10
Maui server
Smartphone
Application
Client Proxy
Profiler
Solver
Maui Runtime
Server
Proxy
Profiler
Solver
Maui Runtime
Application
RPC
RPC
Maui Controller
MAUI Proxy
Intercepts Application Calls
Synchronizes State
Chooses local or remote
Handles Errors
Provides runtime informationSlide11
MAUI Profiler
Profiler
Callgraph
Execution Time
State size
Network Latency
Network Bandwidth
Device Profile
CPU Cycles
Network Power Cost
Network Delay
Computational Delay
Computational Power Cost
Computational Delay
Annotated CallgraphSlide12
MAUI Solver
B
900
mJ
15ms
C
5000
mJ
3000 ms
1000mJ
25000
mJ
D
15000
mJ
12000 ms
10000
mJ
A
Computation energy and delay for execution
Energy and delay for state transfer
A sample
callgraphSlide13
Is Global Program Analysis Needed?
FindMatch
900
mJ
InitializeFace
Recognizer
5000
mJ
1000mJ
25000
mJ
DetectAndExtract
Faces
15000
mJ
10000
mJ
User
Interface
Yes! – This simple example from Face Recognition app shows why local analysis fails.
Cheaper to do localSlide14
Is Global Program Analysis Needed?
FindMatch
900
mJ
InitializeFace
Recognizer
5000
mJ
1000mJ
25000
mJ
DetectAndExtract
Faces
15000
mJ
10000
mJ
User
Interface
Yes! – This simple example from Face Recognition app shows why local analysis fails.
Cheaper to do local
Cheaper to do localSlide15
Is Global Program Analysis Needed?
FindMatch
InitializeFace
Recognizer
1000mJ
DetectAndExtract
Faces
User
Interface
25900mJ
Cheaper to offloadSlide16
Can MAUI Adapt to Changing Conditions?
Adapt to:
Network Bandwidth/Latency Changes
Variability on method’s computational requirementsExperiment:Modified off the shelf arcade game applicationPhysics Modeling (homing missiles)Evaluated under different latency settingsSlide17
DoLevel
HandleMissiles
DoFrame
HandleEnemies
HandleBonuses
11KB + missiles
11KB + missiles
missiles
*Missiles take around 60 bytes each
11KB + missiles
Required state is smaller
Complexity increases with # of missiles
Can MAUI Adapt to Changing Conditions?Slide18
Case 1
DoLevel
HandleMissiles
DoFrame
HandleEnemies
HandleBonuses
*Missiles take around 60 bytes each
Zero Missiles
Low latency (RTT < 10ms)
Computation cost is close to zero
Offload starting at
DoLevelSlide19
Case 2
DoLevel
HandleMissiles
DoFrame
HandleEnemies
HandleBonuses
*Missiles take around 60 bytes each
5
Missiles
Some latency (RTT = 50ms)
Most of the computation cost
Very expensive to offload everything
Little state to offload
Only offload Handle MissilesSlide20
RoadmapMotivation
MAUI system design
MAUI proxy
MAUI profilerMAUI solverEvaluationConclusionSlide21
MAUI Implementation
Platform
Windows Mobile 6.5
.NET Framework 3.5HTC Fuze SmartphoneMonsoon power monitorApplicationsChessFace RecognitionArcade GameVoice-based translatorSlide22
Questions
How much can MAUI reduce energy consumption?
How much can MAUI improve performance?
Can MAUI Run Resource-Intensive Applications?Slide23
How much can MAUI reduce energy consumption?
Big savings even on 3G
An order of magnitude improvement on Wi-Fi
Face RecognizerSlide24
How much can MAUI improve performance?
Improvement of around an order of magnitude
Face RecognizerSlide25
Latency to server impacts the opportunities for fine-grained offload
Up to 40% energy savings on Wi-Fi
Solver would decide not to offload
Arcade GameSlide26
Can MAUI Run Resource-Intensive Applications?
CPU Intensive even on a Core 2 Duo PC
Can be run on the phone with MAUI
TranslatorSlide27
RoadmapMotivation
MAUI system design
MAUI proxy
MAUI profilerMAUI solverEvaluationConclusionSlide28
Conclusions
MAUI enables developers to:
Bypass the resource limitations of handheld devices
Low barrier entry: simple program annotationsFor a resource-intensive applicationMAUI reduced energy consumed by an order of magnitudeMAUI improved application performance similarlyMAUI adapts to:Changing network conditions Changing applications CPU demandsSlide29
Questions?http://research.microsoft.com/en-us/projects/maui/
ecuervo@cs.duke.edu