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 |