A Multilevel Introspective Dynamic Optimization System For Holistic Power-Aware Computing

Power consumption is rapidly becoming the dominant limit- ing factor for further improvements in computer design. Curiously, this applies both at the "high-end" of workstations and servers and the "low end" of handheld devices and embedded computers. At the high-end, the challenge lies in dealing with exponentially growing power densities. At the low-end, there is a demand to make mobile devices more powerful and longer lasting, but battery technology is not improving at the same rate that power consumption is rising. Traditional power-management research is fragmented; techniques are being developed at specific levels, without fully exploring their synergy with other levels. Most software techniques target either operating systems or compilers but do not ex- plore the interaction between the two layers. These techniques also have not fully explored the potential of virtual machines for power manage- ment. In contrast, we are developing a system that integrates information from multiple levels of software and hardware, connecting these levels through a communication channel. At the heart of this system are a virtual ma- chine that compiles and dynamically profiles code, and an optimizer that reoptimizes all code, including that of applications and the virtual ma- chine itself. We believe this introspective, holistic approach enables more informed power-management decisions.

[1]  Rami Melhem,et al.  Toward the placement of power management points in real-time applications , 2003 .

[2]  Alexandru Nicolau,et al.  Java annotation-aware just-in-time (AJIT) complilation system , 1999, JAVA '99.

[3]  Lei Wang,et al.  Code Generation At The Proxy : An Infrastructure-Based Approach To Ubiquitous Mobile Code , .

[4]  Michael Franz Run-time code generation as a central system service , 1997, Proceedings. The Sixth Workshop on Hot Topics in Operating Systems (Cat. No.97TB100133).

[5]  Fred Douglis,et al.  Adaptive Disk Spin-Down Policies for Mobile Computers , 1995, Comput. Syst..

[6]  Matthew Arnold,et al.  Adaptive Optimization in the Jalapeo JVM: The Controller's Analytical Model , 2000 .

[7]  Rami G. Melhem,et al.  Energy management for real-time embedded applications with compiler support , 2003, LCTES '03.

[8]  Stephen J. Fink,et al.  The Jalapeño virtual machine , 2000, IBM Syst. J..

[9]  J. H. Patel,et al.  Use of preferred preemption points in cache-based real-time systems , 1995, Proceedings of 1995 IEEE International Computer Performance and Dependability Symposium.

[10]  Mahmut T. Kandemir,et al.  Energy-oriented compiler optimizations for partitioned memory architectures , 2000, CASES '00.

[11]  Fred J. Pollack New microarchitecture challenges in the coming generations of CMOS process technologies (keynote address)(abstract only) , 1999, MICRO.

[12]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[13]  Larry L. Peterson,et al.  Analysis of techniques to improve protocol processing latency , 1996, SIGCOMM '96.

[14]  Mahmut T. Kandemir,et al.  Influence of compiler optimizations on system power , 2000, Proceedings 37th Design Automation Conference.

[15]  Barton P. Miller,et al.  Fine-grained dynamic instrumentation of commodity operating system kernels , 1999, OSDI '99.

[16]  Bilha Mendelson,et al.  Profile-Directed Restructuring of Operating System Code , 1998, IBM Syst. J..

[17]  Ricardo Bianchini,et al.  Application-Supported Device Management for Energy and Performance , 2002, PACS.

[18]  Volker Barthelmann Inter-task register-allocation for static operating systems , 2002, LCTES/SCOPES '02.

[19]  Larry L. Peterson,et al.  Making paths explicit in the Scout operating system , 1996, OSDI '96.

[20]  Vasanth Bala,et al.  Transparent Dynamic Optimization: The Design and Implementation of Dynamo , 1999 .

[21]  Srivaths Ravi,et al.  Energy-optimizing source code transformations for OS-driven embedded software , 2004, 17th International Conference on VLSI Design. Proceedings..

[22]  Calton Pu,et al.  Optimistic incremental specialization: streamlining a commercial operating system , 1995, SOSP.

[23]  Matthew Arnold,et al.  Adaptive optimization in the Jalapeño JVM , 2000, OOPSLA '00.

[24]  Ulrich Kremer,et al.  Inter- rogram Compilation for Disk Energy Reduction , 2003, PACS.

[25]  Michael Franz,et al.  Continuous program optimization: A case study , 2003, TOPL.

[26]  Hiroshi Kawaguchi,et al.  Cooperative voltage scaling (CVS) between OS and applications for low-power real-time systems , 2001, Proceedings of the IEEE 2001 Custom Integrated Circuits Conference (Cat. No.01CH37169).

[27]  Chandra Krintz,et al.  Using annotations to reduce dynamic optimization time , 2001, PLDI '01.

[28]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[29]  Josep Torrellas,et al.  Optimizing the Instruction Cache Performance of the Operating System , 1998, IEEE Trans. Computers.

[30]  James M. Stichnoth,et al.  Practicing JUDO: Java under dynamic optimizations , 2000, PLDI '00.

[31]  Laurie J. Hendren,et al.  A framework for optimizing Java using attributes , 2000, CASCON.

[32]  Mahmut T. Kandemir,et al.  Adaptive Garbage Collection for Battery-Operated Environments , 2002, Java Virtual Machine Research and Technology Symposium.

[33]  Andreas Gal,et al.  Code generating routers: a network-centric approach to mobile code , 2003, 2002 14th International Conference on Ion Implantation Technology Proceedings (IEEE Cat. No.02EX505).

[34]  Michael Franz,et al.  Virtual-Machine Driven Dynamic Voltage Scaling , 2003 .

[35]  M. Kandemir,et al.  Dynamic compilation for energy adaptation , 2002, ICCAD 2002.

[36]  Chandra Krintz Coupling on-line and off-line profile information to improve program performance , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..