profile-based dynamic voltage scheduling using program checkpoints
Dynamic voltage scaling (DVS) is a known effectivemechanism for reducing CPU energy consumption withoutsignificant performance degradation. While a lot of workhas been done on inter-task scheduling algorithms to implementDVS under operating system control, new researchchallenges exist in intra-task DVS techniques under softwareand compiler control. In this paper we introduce anovel intra-task DVS technique under compiler control usingprogram checkpoints. Checkpoints are generated atcompile time and indicate places in the code where the processorspeed and voltage should be re-calculated. Check-pointsalso carry user-defined time constraints. Our techniquehandles multiple intra-task performance deadlinesand modulates power consumption according to a run-timepower budget. We experimented with two heuristics for adjustingthe clock frequency and voltage. For the particularbenchmark studied, one heuristic yielded 63\% more energysavings than the other. With the best of the heuristics we designed,our technique resulted in 82\% energy savings overthe execution of the program without employing DVS.
dynamic scheduling checkpoint dynamic voltage scaling energy consumption performance algorithm operating system control compilation paper timing place code time constraint power consumption budget heuristics clock energy saving task task scheduling profiles user