Event-Driven Energy Accounting for Dynamic Thermal Management

  • Author:

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

  • Source:

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

  • Date: 27.09.2003
  • Abstract:

    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