Entry Date:
December 27, 2011

The SElf-awarE Computing (SEEC) Model

Principal Investigator Anant Agarwal


The SElf-awarE Computing (SEEC) model is a goal-oriented seec-overview computational model that radically increases developer productivity by abstracting traditional procedural programming into goals (e.g., “achieve the best possible chess move within 10s burning less than 20 W”) that are actuated in our self-aware, factored system.

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.

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.

Project Angstrom has been working toward designing computer hardware and software systems that will essentially act as 'brains' to coordinate computer components and to learn, thereby allowing them to optimize themselves to meet user-specified goals. Application heartbeats, released as open source by Project Angstrom team members a year ago, monitors how all the different applications in a multicore processor computing environment (from cell phones to supercomputers) are running and manages their behavior, including performance, power consumption and output quality. Future systems will not only be able to tell which individual components are not meeting their goals and need additional resources, but will learn from the experience, avoiding this kind of problem in the future -- or at least will fix it more efficiently.