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.
BibTex:
@inproceedings{bellosa03energyaccounting,
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
}