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

Mobile Computing Challenges

Related Work
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

Proposed Architecture

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

Objects

Inter-Object Communication

Experimental Results
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

Future Work
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