Patent ID: 7363283

Claim:
A method for assigning jobs to a system containing a number of central processing units (CPUs), comprising: scheduling jobs onto free CPUs without oversubscription or preemption using traditional scheduling approach; capturing a current state of the system, which describes available resources on the system, characteristics of jobs currently being processed, and characteristics of new jobs waiting to be assigned, wherein capturing the state of the system involves describing the system state with a set of state variables; for all the new jobs, iteratively estimating for each job a long-term benefit to the system of oversubscribing or preempting the system with the job by feeding the set of state variables to a fuzzy rulebase to obtain an output which indicates a long-term expected utility, wherein the output of the fuzzy rulebase Q is computed as follows: Q = ∑ i = 1 8 ⁢ A ⁡ [ i ] · q ⁡ [ i ] ∑ i = 1 8 ⁢ A ⁡ [ i ] , wherein q[i](i=1, . . . , 8) denote rulebase parameters, and wherein activation of a fuzzy rule i(i=1, . . . , 8), which is denoted as A[i], is a product of degrees to which the state variables satisfy the preconditions for the fuzzy rules; identifying the new job with which the oversubscription or preemption of the system results in the highest Q value, wherein deciding whether to oversubscribe or preempt the system with the identified job thereby actively alters the scheduling policy at run time for the identified job; and oversubscribing or preempting the system with the identified job with the highest Q value, thereby actively altering the scheduling policy at run time.