Home | deutsch  | Legals | KIT

Event-Driven Energy Accounting for Dynamic Thermal Management

Event-Driven Energy Accounting for Dynamic Thermal Management

Frank Bellosa, Andreas Weißel, Martin Waitz, and Simon Kellner


Proceedings of the Workshop on Compilers and Operating Systems for Low Power (COLP'03), New Orleans, LA, September 27, 2003

Date: 27.09.2003


With increasing clock speed and level of integration in today's processors, memories, and I/O-controllers, power dissipation is becoming a definitive concern of system design. Control-theoretic techniques have proven to manage the heat dissipation and temperature starting from the level of complete systems, so that a thermal emergency will never be reached. However application-, user- or service-specific requirements had to be neglected.

In this work we investigate dynamic thermal management with respect to the demands of individual applications, users or services. We present an event-driven approach to determine on-the-fly the energy consumption on a fine grained level and describe a model to estimate the temperature without the need for measurement. With this power and thermal model - combined with the well-known facility of resource containers - it is possible to throttle the execution of individual tasks according to their energy-specific characteristics and the thermal requirements of the system. In addition to throttling we investigate a modified process scheduler which allots CPU time according to the power contribution of each task to the current temperature level of the processor.

Experiments using a Pentium 4 architecture running a modified Linux show that a given temperature limit for the CPU will not be exceeded while tasks are scheduled according to their energy consumption.


  author = {Frank Bellosa and Andreas Weissel and Martin Waitz and Simon Kellner},
  title = {Event-Driven Energy Accounting for Dynamic Thermal Management},
  booktitle = {Proceedings of the Workshop on Compilers and Operating Systems for Low Power (COLP'03)},
  address = {New Orleans, LA},
  month = sep # "~27",
  year = 2003