Optimizing energy consumption under flow and stretch constraints

In embedded systems and data-center systems (systems, for short), it is widely accepted that energy consumption has become the bottleneck of system's performance improvement and it is one of the most significant factors to optimize. Unfortunately, an effective energy-aware strategy usually has an adverse impact on a job's flow time or stretch — two important user-perspective system performance metrics. In some cases, the more energy is saved by an energy-aware policy, the more flow time and the larger stretch occur to jobs. In this paper, we investigate the impact on job processing delay introduced by power-down energy-saving mechanisms. Specifically, we study bicriteria algorithms that minimize maximum flow time or largest stretch under a fixed energy budget and minimize total energy consumption under an upper bound of flow time or stretch. We develop optimal offline algorithms to quantitatively balance the system-perspective performance metric (energy consumption) and the user-perspective performance metric (flow time and stretch). We also develop two simple min-energy online algorithms against weakened adversaries. We prove that (1.) with appropriate extra flow time, an online algorithm can beat any non-idling algorithm, in terms of energy consumption; (2.) a deterministic online algorithm which has a bounded times of optimal stretch, is optimal in terms of competitive ratio with respect to energy consumption.