Patent ID: 7921313

Claim:
A computer program product stored on computer readable recordable medium with coded instructions for scheduling voltages and frequencies to minimize overall energy consumption of a computing system with bounded loss of system performance and to keep power dissipation under a fixed limit while minimizing performance loss, the instructions when executing on the computing system perform the method comprising: instructions for collecting performance data about a workload executing on each processor within a plurality of processors of the computing system; instructions for calculating processor and memory intensity of the workload on each processor within the plurality of processors based on the collected performance data; instructions for calculating a predicted performance of the workload on each processor within the plurality of processors based on execution characteristics; instructions for calculating a predicted performance loss, based on the predicted performance at each of a plurality of available processor frequencies relative to a performance predicted for a maximum available frequency of all processors within the plurality of processors in the computing system; instructions for selecting a lowest available frequency for each processor within the plurality of processors such that the predicted performance loss at the selected lowest available frequency versus the maximum available frequency is less than a performance loss bound; instructions for changing an allocated maximum power and total frequency responsive to externally signaled conditions; instructions for reducing processor frequencies one processor at a time within the plurality of processors until a total power is below the maximum power allocated for all the processors, wherein the one processor at a time is selected by choosing a processor that experiences a least performance loss at a next lower frequency; and instructions for selecting an operating voltage for each processor within the plurality of processors based on the selected frequency for the processor such that the selected voltage is a minimum voltage allowed for correct operation of the processor at the selected frequency.