CSE 291: Power And Programming Languages

Spring Quarter, 2009

Systems-level Power Management

  1. Energy-aware adaptation for mobile applications (SOSP 1999)

  2. Policies for Dynamic Clock Scheduling (OSDI 2000)

  3. Real-time dynamic voltage scaling for low-power embedded operating system (SOSP 2001)

  4. Vertigo: Automatic Performance-Setting for Linux (OSDI 2002)

  5. Ghosts in the Machine: Interfaces for Better Power Management (MOBISYS 2004)

  6. Quanto: Tracking Energy in Networked Embedded Systems (OSDI 2008)

  7. Somniloquy: Augmenting Network Interfaces to Reduce PC Energy Usage (NSDI 2009)

Power-aware Compilation

  1. The Emerging Power Crisis in Embedded Processors: What can a (poor) compiler do? (CASES 2001).

  2. Energy-conscious compilation based on voltage scaling (LCTES 2002)

  3. Profile-based dynamic voltage scheduling using program checkpoints in the COPPER framework (DATE 2002)

  4. The design, implementation, and evaluation of a compiler algorithm for CPU energy reduction (PLDI 2003)

  5. Compile-time dynamic voltage scaling settings: opportunities and limits (PLDI 2003)

  6. UCC: Update-Conscious Compilation for Energy Effiency in Wireless Sensor Networks (PLDI 2007)

  7. Reliable and efficient programming abstractions for wireless sensor networks (PLDI 2007)

Architecture-level Power Management

  1. Wattch: A framework for architectural-level power analysis and optimizations (ISCA 2000)

  2. A Dynamic Compilation Framework for Controlling Microprocessor Energy and Performance (MICRO 2005)

  3. Runtime workload monitoring and analysis for power management (MICRO 2006)

  4. Analysis of multi-core power management policies (MICRO 2006)

  5. Power Provisioning for a Warehouse-sized Computer (ISCA 2007)

  6. Gordon: Using Flash Memory to Build Fast, Power-efficient Clusters for Data-intensive Applications (ASPLOS 2009)

Hardware-level Power Management

  1. What is the limit of energy saving by dynamic voltage scaling? (ICCAD 2001)

  2. Dynamic voltage frequency scaling for multi-tasking systems using online learning( International Symposium on Low Power Electronics and Design 2007)

  3. Temperature prediction and proactive job scheduling (ICCAD 2008)

  4. Static and dynamic job scheduling for reducing adverse effects of temperature (TVLSI 2008)


  1. Interprocedural slicing using dependence graphs (TOPLAS 1990) (Also, the PLDI version)

  2. Speeding up slicing (FSE 1994)

  3. Dynamic Program Slicing (PLDI 1990)


  1. System-Level Power Optimizations: Tools and Techniques (Transactions on Design Automation of Electronic Systems 2000)