Patent ID: 8776069

Claim:
An apparatus for energy and performance optimizing job scheduling, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions capable of: queuing a plurality of jobs; characterizing each of the plurality of jobs as one of hot or cold, thereby specifying a hot job sub-queue and a cold job sub-queue; iteratively for a plurality of schedules of the plurality of jobs, until estimated performance and power characteristics of executing jobs in accordance with a schedule meets predefined selection criteria: determining a schedule for the plurality of jobs in dependence upon a user provided parameter, the characterization of each job as hot or cold, and an energy and performance optimizing heuristic; estimating performance and power characteristics of executing the jobs in accordance with the schedule; and determining whether the estimated performance and power characteristics meet the predefined selection criteria; if the estimated performance and power characteristics do not meet the predefined selection criteria, adjusting the user-provided parameter for a next iteration; and if the estimated performance and power characteristics meet the predefined selection criteria, executing the plurality of jobs in accordance with the determined schedule, wherein determining a schedule for the plurality of jobs in dependence upon a user provided parameter, the characterization of each job as hot or cold, and an energy and performance optimizing heuristic further comprises: for each possible schedule of the plurality of jobs, calculating: ω=λ(σ cold −σ* cold )+(1−λ)(σ* hot −σ* hot ); and selecting the schedule having a minimum calculated ω value, wherein: σ cold comprises the average stretch value for the cold job sub-queue of the possible schedule for which ω is calculated, the average stretch value representing the sum of times to complete execution of each job, in the possible schedule, preceding the final job in the cold job sub-queue including the time to complete execution of the final job in the cold job sub-queue, normalized by the time to complete execution of the final job in the cold job sub-queue; σ hot comprises the average stretch value for the hot job sub-queue of the possible schedule for which ω is calculated, the stretch value representing the sum of times to complete execution of each job, in the possible schedule, preceding the final job in the hot job sub-queue including the time to complete execution of the final job in the hot job sub-queue, normalized by the time to complete execution of the final job in the hot job sub-queue; σ* cold comprises the sum of the times to complete execution of each job in the cold job sub-queue; σ* hot comprises the sum of the times to complete execution of each job in the hot job sub-queue; and λ comprises the user provided parameter.