Patent ID: 8832476

Claim:
A computer-implemented method of allocating power to computing machines, the method comprising: receiving, at a computing allocation system and from a plurality of computing machines, electronic communications comprising: i) a first request, comprising a power value, that represents a first power allotment that is expected to be used by a first computing machine during a predetermined period of time; and ii) one or more first priority values that represent priorities of one or more tasks expected to be executed by the first computing machine during the predetermined period of time; determining, using a scoring function at the computing allocation system, a plurality of scores associated with the plurality of computing machines, the scoring function comprising the first priority values, where the plurality of scores are maintained in an ordered electronic list; granting, with the computing allocation system and to the plurality of computing machines, power allotments for the plurality of computing machines in accordance with a comparison of the determined scores for the plurality of computing machines, a higher score corresponding to a relatively larger power allotment for a computing machine, the power allotments granted based on a determination of an appropriate position within the ordered electronic list of scores for a determined first score and placing the determined first score within the ordered electronic list of scores at the appropriate position; sending responsive electronic communications to the plurality of computing machines, the responsive electronic communications formatted to cause particular ones of the plurality of computing machines to take a power allotment in accordance with their granted allotments; determining, by at least one particular computing machine of the plurality of computing machines, an excess power capacity; and reporting, by the at least one particular computing machine, the excess power capacity, wherein the computing allocation system controls power allocation to the plurality of computing machines repeatedly at a periodic frequency.