
|
 |
|
PowerGuard
|  |
Web-centered computation, outsourcing, and other computing centers are moving to a new form of system architecture called super-dense servers. These servers pack a large number of CPU boards into a very compact area. The density of many processing nodes makes energy consumption a principal concern, requiring adaptive power management policies. In response to this concern, we are developing a subsystem (PowerGuard) that performs task-level energy measurement and optimization for such super-dense servers. PowerGuard uses advanced CPU architecture features to measure and profile the energy consumption of processes, and to control the voltage and frequency in order to conserve energy, but still meet the Quality-of-Service task requirements.
The project focuses on the task level, whereas other power-optimization subsystems deal with low-power system design, low-power architectures, etc. The idea is to learn the requirements and behavior of recurring tasks as they run. Then, when a " well-understood" task starts, we can determine the best way to run it. PowerGuard uses advanced architecture features such as performance monitoring counters for power estimation and voltage and frequency scaling for power optimization.
PowerGuard also supports the creation of power-optimized code. Here, the approach is to collect a profile of various CPU and memory activities while the programs are running, and then to feed that profile back to the compiler or post-link optimizer. Part of the PowerGuard project will be to develop a power-aware optimization that makes use of such a profile. Planned optimizations include rearranging memory access patterns to minimize the active memory modules, allowing for preference of the balanced allocation of execution units to basic blocks, in contrast to the common, greedy allocation, and identifying the intra-task speed control points.
|
 |
|
 |
|