Patent ID: 7920282

Claim:
In a computing environment having a plurality of nodes sharing resources, a method of generating a preempt set of scheduled jobs to be preempted when scheduling a preemptor job A for execution, comprising: operating at least one processor of at least one node of the computing environment to perform operations including: (a) determining a job A to be scheduled and first resource requirements of job A, the first resource requirements representing first amounts of first resources of different types required to execute job A; (b) generating a list P of already scheduled jobs that can be preempted by job A, and that collectively have second resource requirements required to execute the already scheduled jobs, the second resource requirements representing second amounts of respective ones of the first resources, the second amounts being nonzero with respect to each of a plurality of the first resources, wherein requirements for amounts of and types of resources required to execute each already scheduled job are subject to vary between respective ones of the already scheduled jobs; (c) generating a plurality of ordered lists of jobs including one list per each of the plurality of first resources required by job A, by selecting jobs from the list P, each job on each ordered list being ranked by how closely its requirement for that one of the first resources matches the first resource requirements of job A with respect to that first resource; (d) creating a list L of jobs, the list L including the top-ranked job from each of the plurality of the ordered lists; determining a weight function by analyzing usage of one or more resources Ri during scheduling of the job A, the determining including generating a closeness function in order to establish a requirement of the job A for any particular resource that has to be used during completion of the job A; determining an order of jobs to be preempted within the list L based on the weight function; and (e) selecting a set including a plurality of jobs to be preempted based on the list L of jobs.