Project Angstrom’s self-aware computing has been selected by the editors of Scientific American as one of "Ten World Changing Ideas" in the December 2011 issue. Project Angstrom is an MIT-led research consortium that is based in the Computer Science and Artificial Intelligence Laboratory (CSAIL) and engages researchers from the Research Laboratory of Electronics, Microsystems Technology Laboratories and the Materials Processing Center, as well as several external collaborators from industry and academia.
The goal of the CSAIL and Department of Electrical Engineering and Computer Science faculty, researchers and students involved in Project Angstrom is to tame the exploding complexity of computer systems. Self-aware computing will revolutionize the way people build and use computers by allowing the machines to observe and optimize themselves.
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.
Anant Agarwal, CSAIL director and Project Angstrom lead scientist, said in the article: "Self-aware systems will not only make computers smarter, they could prove essential for managing ever more complex computers in the future. Over the past decade, computer engineers have added more and more basic computing units, called cores, to computers. Today's computers have two to four cores, but future machines will use anywhere from dozens to thousands of cores. That would make the task of splitting up computational tasks among the cores, which programmers now do explicitly, nearly impossible. A self-aware system will take that burden off the programmer, adjusting the program's core use automatically." Optimizing core usage is just the first step. Eventually every component of a system will be designed for self-awareness, providing optimal results with minimum programmer effort.