The Carbon research group is focused on research related to multicore architectures and software. We are a part of the Computer Science and Artificial Intelligence Lab at MIT.

The SElf-awarE Computing (SEEC) Model

SEEC is a collaboration between several organizations including MIT, the University of Chicago, Lund University, Politecnico di Milano, and Freescale Semiconductor.

SEEC was named one of ten “World Changing Ideas” by Scientific American in their December 2011 issue.  Here is a link, but note that the article is behind a paywall.

Overview

The SElf-awarE Computational model (SEEC) is designed to address the challenge of programming modern and future computer systems that must meet conflicting goals (e.g. high performance with low energy consumption).  SEEC meets this challenge by allowing developers to collaboratively create adaptive systems that understand user’s goals and take action to maintain these goals in the face of unforeseen events such as hardware failure or variations in application workload.

Overview of the SEEC Model

Overview of the SEEC Model

In the SEEC model application programmers expose application goals (e.g. achieve the best chess move in 10 seconds while consuming less than 1 joule of energy), while system programmers and hardware developers expose actions (e.g. allocate more resources to the chess application, give chess higher priority to memory).  SEEC’s runtime decision engine monitors goals and progress and then uses a novel combination of control theory and machine learning to schedule actions that meet goals optimally.

Video Demo

The following demo shows what SEEC can do on a real Linux/x86 system.  This video shows the results of encoding a video both with and without SEEC.  The left shows the results without SEEC where resources (cores, clock speed, and memory) have been allocated for worst-case-execution-time (WCET).   The right side of the screen shows the results of encoding this video with SEEC.  For both WCET and SEEC, the top part shows the video played back at the speed it was encoded (it is essentially the same for both methods), while the bottom part of the screen shows the average power consumption for each frame as it was encoded (SEEC saves a tremendous amount of power).

There are three distinct scenes in the video.  The first (with the ducks) is the hardest to encode and both SEEC and WCET burn a lot of power on these frames.  In the second scene (the traffic), the frames are much easier to encode, so SEEC is able to save power while maintaining the desired encoding rate.  In the final scene (flying over the city), the frames are a medium difficulty and SEEC increases power consumption slightly while still saving power compared to WCET.  SEEC is able to do this because it is aware of the goals of the video encoder (namely to maintain the target performance while minimizing power consumption).  As the video encoder provides feedback, SEEC is able to detect when the goals are being exceeded and save power.  When goals are not being met, SEEC adds more resources.  See our latest publications for more details.

Publications:

  • Self-aware Computing in the Angstrom Processor,
    by Henry Hoffmann, Jim Holt, George Kurian, Eric Lau, Martina Maggio, Jason E. Miller, Sabrina M. Neuman, Mahmut Sinangil, Yildiz Sinangil, Anant Agarwal, Anantha P. Chandrakasan, Srinivas Devadas.
    Proceedings of the 49th Design Automation Conference (DAC), June 2012. (doi)
  • SEEC: A General and Extensible Framework for Self-Aware Computing,
    by Henry Hoffmann, Martina Maggio, Marco D. Santambrogio, Alberto Leva, and Anant Agarwal.
    MIT CSAIL Technical Report, MIT-CSAIL-TR-2011-046, November 2011. (doi)
  • Control-theoretical CPU allocation: Design and Implementation with Feedback Control,
    byMartina Maggio, Henry Hoffmann, Anant Agarwal, and Alberto Leva.
    The 6th International Workshop on Feedback Control Implementation and Design in Computing Systems and Networks (FeBID 2011). (link)
  • Decision Making in Autonomic Computing Systems: Comparison of Approaches and Techniques,
    byMartina Maggio, Henry Hoffmann, Marco D. Santambrogio, Anant Agarwal, and Alberto Leva.
    The 8th IEEE/ACM International Conference on Autonomic Computing and Communications (ICAC 2011). (doi)
  • A comparison of autonomic decision making techniques,
    byMartina Maggio, Henry Hoffmann, Marco D. Santambrogio, Anant Agarwal, and Alberto Leva.
    MIT CSAIL Technical Report, MIT-CSAIL-TR-2011-019
    , April 2011. (doi),
  • SEEC: A framework for self-aware management of multicore resources,
    by Henry Hoffmann, Martina Maggio, Marco D. Santambrogio, Alberto Leva, and Anant Agarwal.
    MIT CSAIL Technical Report, MIT-CSAIL-TR-2011-016
    , March 2011. (doi)
  • Dynamic knobs for responsive power-aware computing,
    by Henry Hoffmann, Stelios Sidiroglou, Michael Carbin, Sasa Misailovic, Anant Agarwal, Martin C. Rinard.
    16th international conference on architectural support for programming languages and operating systems
    (ASPLOS2011), March 2011. (doi)
  • Controlling software applications via resource allocation within the heartbeats framework,
    by Martina Maggio, Henry Hoffmann, Marco D. Santambrogio, Anant Agarwal, and Alberto Leva.
    49th IEEE Conference on Decision and Control (CDC2010),
    December 2010. (doi)
  • SEEC: A framework for self-aware computing,
    by Henry Hoffmann, Martina Maggio, Marco D. Santambrogio, Alberto Leva, and Anant Agarwal.
    MIT CSAIL Technical Report, MIT-CSAIL-TR-2010-049, October 2010
    . (doi)
  • Enabling technologies for self-aware adaptive systems,
    by
    Marco D. Santambrogio, Henry Hoffmann, Jonathan Eastep, Jason E. Miller, and Anant Agarwal.
    Conference on Adaptive Hardware and Systems (AHS), 2010 NASA/ESA, pp 149-156, June 2010. (doi)
  • Application Heartbeats: A Generic Interface for Specifying Program Performance and Goals in Autonomous Computing Environments,
    by
    Henry Hoffmann, Jonathan Eastep, Marco D. Santambrogio, Jason E. Miller, and Anant Agarwal.
    The 7th IEEE/ACM International Conference on Autonomic Computing and Communications (ICAC2010)
    , pp 79-88, June 2010. (doi)
  • Application Heartbeats for Software Performance and Health,
    by
    Henry Hoffmann, Jonathan Eastep, Marco D. Santambrogio, Jason E. Miller, and Anant Agarwal.
    15th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming,
    pp.347-348, January 2010. (pdf)
  • Application Heartbeats: A Generic Interface for Expressing Performance Goals and Progress in Self-Tuning Systems,
    by Henry Hoffmann, Jonathan Eastep, Marco D. Santambrogio, Jason E. Miller, and Anant Agarwal.
    4th Workshop on Statistical and Machine learning approaches to ARchitecture and compilaTion (SMART’10),
    2010. (pdf)
  • Application Heartbeats for Software Performance and Health,
    by
    Henry Hoffmann, Jonathan Eastep, Marco D. Santambrogio, Jason E. Miller, and Anant Agarwal.
    MIT CSAIL Technical Report,
    MIT-CSAIL-TR-2009-035, August 2009. (pdf)

Resources:

Team Members:

  • Henry Hoffmann (Department of Computer Science, University of Chicago)
  • Sabrina Neuman (CSAIL, MIT)
  • Eric Lau (CSAIL, MIT)
  • Yildiz Sinangil (MTL, MIT)
  • Mahmut Sinangil (MTL, MIT)
  • Martina Maggio (Lund University)
  • Jonathan Eastep (CSAIL, MIT)
  • Marco D. Santambrogio (Politecnico di Milano/MIT)
  • Jason E. Miller (CSAIL, MIT)
  • Jim Holt (Freescale)
  • Anantha Chrandrakasan (MTL, MIT)
  • Srinivas Devadas (CSAIL, MIT)
  • Anant Agarwal (CSAIL, MIT)