An Adaptive MP3
Player:
Reducing Power Consumption and
Increasing Application Performance
Thomas Kunz | |
Systems and Computer Engineering | |
Carleton University | |
http://kunz-pc.sce.carleton.ca/ | |
tkunz@sce.carleton.ca |
Typically, related work focuses on bandwidth variation | |||
Other resources are also constrained (memory, power, CPU capabilities) and may vary over time | |||
Majority of solutions: introduce proxy between client (application executing on mobile device) and server, proxy compresses and filters data stream | |||
sometimes, degree of compression depends on available bandwidth | |||
user mobility often not addressed/supported | |||
Other solutions: | |||
view mobile purely as User Interface (WWW browsers, Teleporting, ....) | |||
partition client application between mobile and proxy | |||
partition directed by application (Rover, MaROS, ....) | |||
partition transparent to application (our own focus) |
Adaptive Mobile
Applications:
System Overview
Mobile Code Toolkit: Proxy Objects
Mobile Code Toolkit: Components
Extend JVM on client and proxy server | ||
Monitor | ||
Code Storage | ||
Object References and Profiling | ||
Object Server | ||
Remote Method Invocation Protocol | ||
Dynamic Decision | ||
Communication Control Layer | ||
Extend garbage collection to deal with remote references | ||
Provide abstractions to notify runtime system about environment and changes in environment (bandwidth, power, …), based on events and event notification |
Required Info: Application Object Graph
Implemented MP3 player, decoder (set of heavily communicating objects) can execute locally or remotely | |||
Various performance experiments, study impact of | |||
Available Bandwidth (19.2 kbps – 2 Mbps) | |||
Relative CPU speed (Mobile CPU: Proxy CPU) | |||
1:4 for laptop as client device | |||
1:116 for Windows CE palmtop as client device | |||
Results (more details in paper): | |||
for high bandwidth and slow client, offloading decoder to proxy can speed up application performance by a factor of 20 and reduce power consumption by 95% | |||
For faster client devices, independent of bandwidth, no benefit (actually worse performance) when decoding sound samples in access network |
Conclusions and Current Status
Implemented Mobile Code Toolkit with small footprint for Windows CE devices | ||
Collected experimental evidence to verify validity of our approach | ||
Built framework to study scalability | ||
Started to improve RMI performance (reduced time by up to factor of 4, so far) | ||
Port to Palm OS (KVM problems): | ||
No reflection | ||
No serialization | ||
No JNI |
Improve toolkit: better RMI performance, automatic generation of proxy objects, port to Palm OS, build object graph “on-the-fly”, dynamic partitioning decisions | |
Study additional applications and more dynamic scenarios, including proxy-to-proxy handoffs | |
Conflicting objectives (power saving vs. application performance) | |
Interaction between application-aware (MP3 player reduces sound quality, sampling rate, …. ) and application-transparent (runtime system migrates decode objects from handset to proxy) adaptation |