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.
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.
The SEEC project homepage has additional resources including publications, links to video, and links to open source code.