Seec: a framework for self-aware management of goals and constraints in computing systems (power-aware computing, accuracy-aware computing, adaptive computing, autonomic computing)

Modern computing systems require applications to balance competing goals, e.g., high performance and low power or high performance and high precision. Achieving the right balance for a particular application and system places an unrealistic burden on application programmers who must understand the power, performance, and precision implications of a variety of application and system configurations (e.g. ,changing algorithms or allocating cores). To address this problem, we propose the Self-aware Computing framework, or SEEC. SEEC automatically and dynamically configures systems and applications to meet goals accurately and efficiently. While other self-aware implementations have been proposed, SEEC is uniquely distinguished by its decoupled approach, which allows application and systems programmers to separately specify goals and configurations, each according to their expertise. SEEC's runtime decision engine observes and configures the system automatically, reducing programmer burden. This general and extensible decision engine employs both control theory and machine learning to reason about previously unseen applications and system configurations while automatically adapting to changes in both application and system behavior. This thesis describes the SEEC framework and evaluates it in several case studies. SEEC is evaluated by implementing its interfaces and runtime system on multiple, modern Linux x86 servers. Applications are then instrumented to emit goals and progress, while system services are instrumented to describe available adaptations. The SEEC runtime decision engine is then evaluated for its ability to meet goals accurately and efficiently. For example, SEEC is shown to meet performance goals with less than 3% average error while bringing average power consumption within 92% of optimal. SEEC is also shown to meet power goals with less than 2% average error while achieving over 96% of optimal performance on average. Additional studies show SEEC reacting to maintain performance in response to unexpected events including fluctuations in application workload and reduction in available resources. These studies demonstrate that SEEC can have a positive impact on real systems by understanding high level goals and adapting to meet those goals online. (Copies available exclusively from MIT Libraries, libraries.mit.edu/docs - docs@mit.edu)

[1]  Henry Hoffmann,et al.  Dynamic knobs for responsive power-aware computing , 2011, ASPLOS XVI.

[2]  Calton Pu,et al.  SWiFT: a feedback control and dynamic reconfiguration toolkit , 1998 .

[3]  Martin C. Rinard,et al.  Automatically identifying critical input regions and code in applications , 2010, ISSTA '10.

[4]  Jeffrey O. Kephart,et al.  Research challenges of autonomic computing , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[5]  Martin C. Rinard,et al.  Taint-based directed whitebox fuzzing , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[6]  Ian D. Reid,et al.  Articulated Body Motion Capture by Stochastic Search , 2005, International Journal of Computer Vision.

[7]  William S. Levine,et al.  The Control Handbook , 2005 .

[8]  Klara Nahrstedt,et al.  A control-based middleware framework for quality-of-service adaptations , 1999, IEEE J. Sel. Areas Commun..

[9]  Srinivas Devadas,et al.  Oblivious Routing in On-Chip Bandwidth-Adaptive Networks , 2009, 2009 18th International Conference on Parallel Architectures and Compilation Techniques.

[10]  Anoop Gupta,et al.  Reducing Memory and Traffic Requirements for Scalable Directory-Based Cache Coherence Schemes , 1990, ICPP.

[11]  Yixin Diao,et al.  Feedback Control of Computing Systems , 2004 .

[12]  A. Agarwal,et al.  Control-theoretical CPU allocation : Design and Implementation with Feedback Control , 2011 .

[13]  Kai Li,et al.  The PARSEC benchmark suite: Characterization and architectural implications , 2008, 2008 International Conference on Parallel Architectures and Compilation Techniques (PACT).

[14]  G. Edward Suh,et al.  Application-aware deadlock-free oblivious routing , 2009, ISCA '09.

[15]  Michael F. P. O'Boyle,et al.  A Predictive Model for Dynamic Microarchitectural Adaptivity Control , 2010, 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture.

[16]  Luiz André Barroso,et al.  The Case for Energy-Proportional Computing , 2007, Computer.

[17]  Anna W. Topol,et al.  Stable SRAM cell design for the 32 nm node and beyond , 2005, Digest of Technical Papers. 2005 Symposium on VLSI Technology, 2005..

[18]  A. Chandrakasan,et al.  A 256kb Sub-threshold SRAM in 65nm CMOS , 2006, 2006 IEEE International Solid State Circuits Conference - Digest of Technical Papers.

[19]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[20]  Ricardo Baeza-Yates,et al.  A Comparison of Open Source Search Engines , 2007 .

[21]  Onur Mutlu,et al.  Self-Optimizing Memory Controllers: A Reinforcement Learning Approach , 2008, 2008 International Symposium on Computer Architecture.

[22]  Woongki Baek,et al.  Green: a framework for supporting energy-conscious programming using controlled approximation , 2010, PLDI '10.

[23]  Jonathan Eastep,et al.  Smart data structures: an online machine learning approach to multicore data structures , 2011, ICAC '11.

[24]  Henry Hoffmann,et al.  Application heartbeats: a generic interface for specifying program performance and goals in autonomous computing environments , 2010, ICAC '10.

[25]  Alan Edelman,et al.  PetaBricks: a language and compiler for algorithmic choice , 2009, PLDI '09.

[26]  Jeffrey S. Vetter,et al.  Autopilot: adaptive control of distributed applications , 1998, Proceedings. The Seventh International Symposium on High Performance Distributed Computing (Cat. No.98TB100244).

[27]  Qilu Sun,et al.  LPV Model and Its Application in Web Server Performance Control , 2008, 2008 International Conference on Computer Science and Software Engineering.

[28]  Sang Hyuk Son,et al.  Feedback Control Architecture and Design Methodology for Service Delay Guarantees in Web Servers , 2006, IEEE Transactions on Parallel and Distributed Systems.

[29]  Anantha Chandrakasan,et al.  A 28nm high-density 6T SRAM with optimized peripheral-assist circuits for operation down to 0.6V , 2011, 2011 IEEE International Solid-State Circuits Conference.

[30]  Simon Oberthür,et al.  Dynamic online reconfiguration for customizable and self-optimizing operating systems , 2005, EMSOFT.

[31]  Ralph Weischedel,et al.  PERFORMANCE MEASURES FOR INFORMATION EXTRACTION , 2007 .

[32]  Nathan Ickes,et al.  A 10 pJ/cycle ultra-low-voltage 32-bit microprocessor system-on-chip , 2011, 2011 Proceedings of the ESSCIRC (ESSCIRC).

[33]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[34]  Fangzhe Chang,et al.  Automatic configuration and run-time adaptation of distributed applications , 2000, Proceedings the Ninth International Symposium on High-Performance Distributed Computing.

[35]  Kang G. Shin,et al.  Adaptive control of virtualized resources in utility computing environments , 2007, EuroSys '07.

[36]  Muli Ben-Yehuda,et al.  NAP: a building block for remediating performance bottlenecks via black box network analysis , 2009, ICAC '09.

[37]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[38]  George Candea,et al.  JAGR: an autonomous self-recovering application server , 2003, 2003 Autonomic Computing Workshop.

[39]  Michael Roitzsch,et al.  Probabilistic Admission Control to Govern Real-Time Systems under Overload , 2007, 19th Euromicro Conference on Real-Time Systems (ECRTS'07).

[40]  George Kurian,et al.  Graphite: A distributed parallel simulator for multicores , 2010, HPCA - 16 2010 The Sixteenth International Symposium on High-Performance Computer Architecture.

[41]  Onur Mutlu,et al.  Accelerating critical section execution with asymmetric multi-core architectures , 2009, ASPLOS.

[42]  Srinivas Devadas,et al.  ARCc: A case for an architecturally redundant cache-coherence architecture for large multicores , 2011, 2011 IEEE 29th International Conference on Computer Design (ICCD).

[43]  Henry Hoffmann,et al.  Controlling software applications via resource allocation within the heartbeats framework , 2010, 49th IEEE Conference on Decision and Control (CDC).

[44]  Jason Liu,et al.  A High-Density Subthreshold SRAM with Data-Independent Bitline Leakage and Virtual Ground Replica Scheme , 2007, 2007 IEEE International Solid-State Circuits Conference. Digest of Technical Papers.

[45]  Peter F. Sweeney,et al.  Performance and environment monitoring for continuous program optimization , 2006, IBM J. Res. Dev..

[46]  Nancy M. Amato,et al.  A framework for adaptive algorithm selection in STAPL , 2005, PPoPP.

[47]  Michael C. Huang,et al.  Dynamically Tuning Processor Resources with Adaptive Processing , 2003, Computer.

[48]  Mor Harchol-Balter,et al.  Power Capping Via Forced Idleness , 2009 .

[49]  Alon Naveh,et al.  Power management architecture of the 2nd generation Intel® Core microarchitecture, formerly codenamed Sandy Bridge , 2011, IEEE Hot Chips Symposium.

[50]  Howard M. Schwartz,et al.  Exponential convergence of the Kalman filter based parameter estimation algorithm , 2003 .

[51]  Asit K. Mishra,et al.  METE: meeting end-to-end QoS in multicores through system-wide resource management , 2011, PERV.

[52]  Li-Shiuan Peh,et al.  Physical vs. Virtual Express Topologies with Low-Swing Links for Future Many-Core NoCs , 2010, 2010 Fourth ACM/IEEE International Symposium on Networks-on-Chip.

[53]  Xiaoyun Zhu,et al.  Designing Controllable Computer Systems , 2005, HotOS.

[54]  D. Yeung Learning-Based SMT Processor Resource Distribution via Hill-Climbing , 2006, ISCA 2006.

[55]  Dilma Da Silva,et al.  K42: building a complete operating system , 2006, EuroSys.

[56]  Manuel Prieto,et al.  A comprehensive scheduler for asymmetric multicore systems , 2010, EuroSys '10.

[57]  R. Balasubramonian,et al.  Memory hierarchy reconfiguration for energy and performance in general-purpose processor architectures , 2000, Proceedings 33rd Annual IEEE/ACM International Symposium on Microarchitecture. MICRO-33 2000.

[58]  Gerald Tesauro,et al.  Reinforcement Learning in Autonomic Computing: A Manifesto and Case Studies , 2007, IEEE Internet Computing.

[59]  William J. Bowhill,et al.  A 32nm 3.1 billion transistor 12-wide-issue Itanium® processor for mission-critical servers , 2011, 2011 IEEE International Solid-State Circuits Conference.

[60]  Michel Tokic Adaptive ε-greedy Exploration in Reinforcement Learning Based on Value Differences , 2010 .

[61]  Donald Yeung,et al.  Multicore Performance Optimization Using Partner Cores , 2011, HotPar.

[62]  George Kurian,et al.  Self-aware computing in the Angstrom processor , 2012, DAC Design Automation Conference 2012.

[63]  Mark D. Corner,et al.  Eon: a language and runtime system for perpetual systems , 2007, SenSys '07.

[64]  Engin Ipek,et al.  Coordinated management of multiple interacting resources in chip multiprocessors: A machine learning approach , 2008, 2008 41st IEEE/ACM International Symposium on Microarchitecture.

[65]  Doug Burger,et al.  An adaptive, non-uniform cache structure for wire-delay dominated on-chip caches , 2002, ASPLOS X.

[66]  Jeffrey K. Hollingsworth,et al.  Prediction and adaptation in Active Harmony , 1998, Proceedings. The Seventh International Symposium on High Performance Distributed Computing (Cat. No.98TB100244).

[67]  Henry Hoffmann,et al.  Metronome: Operating system level performance management via self-adaptive computing , 2012, DAC Design Automation Conference 2012.

[68]  Scott Shenker,et al.  Scheduling for reduced CPU energy , 1994, OSDI '94.

[69]  Seyed Masoud Sadjadi,et al.  Composing adaptive software , 2004, Computer.

[70]  Lizy Kurian John,et al.  Predictive coordination of multiple on-chip resources for chip multiprocessors , 2011, ICS '11.

[71]  Martin C. Rinard Probabilistic accuracy bounds for fault-tolerant computations that discard tasks , 2006, ICS '06.

[72]  Joseph L. Hellerstein Why feedback implementations fail: the importance of systematic testing , 2010, FeBiD '10.

[73]  James H. Anderson,et al.  An Adaptive Framework for Multiprocessor Real-Time System , 2008, 2008 Euromicro Conference on Real-Time Systems.

[74]  Lui Sha,et al.  Queueing model based network server performance control , 2002, 23rd IEEE Real-Time Systems Symposium, 2002. RTSS 2002..

[75]  Anant Agarwal,et al.  Smartlocks: lock acquisition scheduling for self-aware synchronization , 2010, ICAC '10.

[76]  Chenyang Lu,et al.  ControlWare: a middleware architecture for feedback control of software performance , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[77]  R. Laddaga Creating robust software through self-adaptation , 1999, IEEE Intelligent Systems and their Applications.

[78]  Marco Lovera,et al.  LPV model identification for power management of Web service systems , 2008, 2008 IEEE International Conference on Control Applications.

[79]  Norman P. Jouppi,et al.  Processor Power Reduction Via Single-ISA Heterogeneous Multi-Core Architectures , 2003, IEEE Computer Architecture Letters.

[80]  Steven Swanson,et al.  GreenDroid: A mobile application processor for a future of dark silicon , 2010, 2010 IEEE Hot Chips 22 Symposium (HCS).

[81]  Sang Hyuk Son,et al.  Design and evaluation of a feedback control EDF scheduling algorithm , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).