Method and system for performing fair-share preemption
AssigneeRuntime Design Automation
InventorAndrea Casotto
Life of this patent
Estimating the term…
Abstract
A method and apparatus for performing fair-share preemption in a distributed computing environment is disclosed. The invention allows the suspension of jobs in a preempt-able set and the transfer of their respective resources, e.g. either hardware or software resources, to jobs in a preempting set. These activities are performed, all while assuring fairness among jobs scheduled to be executed and optimizing the use of available resources. In a preferred embodiment, the preempt-able and the preempting sets may include jobs characterized by, for example, job priorities, job ownership, or combinations thereof.
Claims31
A method for performing fair-share job preemption for a plurality of jobs in a distributed computing environment, comprising the steps of:
- maintaining a set of preempt-able jobs and a set of preempting jobs, wherein use of at least a resource in the distributed computing environment by a preempt-able job is revokable, and wherein a preempting job is allowed to start using said at least a resource in the distributed computing environment if said resource is being currently used by at least one preempt-able job;
- determining for each preempt-able job of the plurality of jobs a historical share respective of total preemption time of said each job in a fair-share window, wherein a fair-share window is a configurable time period value in which said each job was preempted;
- determining for each user a current actual share respective of total preemption time of each user's jobs being preempted at the end of said fair-share window;
- and
- prioritizing preempt-able jobs based on said historical share of said each job and said current actual share of said each user.
A computer program product for enabling operation of a method for performing fair-share job preemption for a plurality of jobs in a distributed computing environment, the computer program product having computer instructions on a memory, the instructions comprising the steps of:
- maintaining a set of preempt-able jobs and a set of preempting jobs, wherein use of at least a resource in the distributed computing environment by a preempt-able job is revokable, and wherein a preempting job is allowed to start using said at least a resource in the distributed computing environment if said resource is being currently used by at least one preempt-able job;
- determining for each preempt-able job of the plurality of jobs a historical share respective of total preemption time of said each job in a fair-share window, wherein a fair-share window is a configurable time period value in which said each job was preempted;
- determining for each user a current actual share respective of total preemption time of each user's jobs being preempted at the end of said fair-share window;
- and
- prioritizing preempt-able jobs based on said historical share of said each job and said current actual share of said each user.
A computer system for performing job fair-share preemption for a plurality of jobs in a distributed computing environment, the computer system comprising a processor and a memory that is under control of said processor, said system comprising:
- means for maintaining a set of preempt-able jobs and a set of preempting jobs, wherein use of at least a resource in the distributed computing environment by a preempt-able job is revokable, and wherein a preempting job is allowed to start using said at least a resource in the distributed computing environment if said resource is being currently used by at least one preempt-able job;
- means for determining for each preempt-able job of the plurality of jobs a historical share respective of total preemption time of said each job in a fair-share window, wherein a fair-share window is a configurable time period value in which said each job was preempted;
- means for determining for each user a current actual share respective of total preemption time of each user's jobs being preempted at the end of said fair-share window;
- and
- means for prioritizing preempt-able jobs based on said historical share of said each job and said current actual share of said each user.
Dependencies are inferred from the claim text.