# US 9,703,285 B2 · Fair share scheduling for mixed clusters with multiple resources

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,703,285 B2
- Document ID: US9703285B2
- Status: Granted
- Kind: B2
- Application number: 11/552,554
- Filed: 2006-10-25
- Published: 2008-05-01
- Granted: 2017-07-11
- Earliest claimed: 2006-10-25
- Assignees: International Business Machines Corporation
- Applicants: Enci Zhong
- Inventors: Enci Zhong
- Web page: https://patentgrep.com/patent/US9703285B2

## CPC

- G05B 19/41865: {characterised by job scheduling, process planning, material flow}
- G06Q 10/063: Operations research, analysis or management
- G06Q 10/0631: Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q 10/06312: {Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling}
- G06Q 50/188: {Electronic negotiation}
- G05B 2219/32258: Resource, machine assignment preferences, actual and anticipated load
- G05B 2219/32418: Machine workload balance, same tools for pool of machines for same operations
- Y02P 90/02: Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- Y02P: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS

## Abstract

A technique for determining scheduling priorities of jobs of different types to facilitate workload management in a clustered processing environment having a plurality of managed resource types is provided. The technique includes allocating shares of multiple managed resource types to users and user groups of the clustered processing environment. The technique also includes assigning a job priority for a subsequent job submitted by a user or group, wherein the calculated job priority is based on a type attribute of the subsequent job and the number of the user's or group's remaining shares of at least one managed resource type of the multiple of managed resource types.

## Claims

### Claim 1

A method of determining scheduling priorities of jobs, each job comprising one or more programs, of different types to facilitate workload management of job execution in a clustered processing environment by enabling management of different types of computing resources separately in the clustered processing environment comprising different types of computing resources, the method comprising:
allocating, by one or more processors of the clustered processing environment, shares of multiple managed resource types of a plurality of managed resource types to at least one user entity of a clustered processing environment, wherein the allocating comprises allocating one or more shares of each of the multiple managed resource types to the at least one user entity, wherein the multiple managed resource types are different types of computing resources of one or more computing machines in the clustered processing environment, and wherein resources of the clustered processing environment are shared to perform system tasks; and
assigning, by a job scheduler executing on the one or more processors of the clustered processing environment and responsible for scheduling jobs using the multiple managed resource types, a job priority for a subsequent job submitted by a user entity of the at least one user entity, wherein the job priority is determined based on a type attribute of the subsequent job, the type attribute identifying a resource type of the only managed resources types of the different types of computing resources capable of completing the subsequent job and wherein the job priority of the subsequent job is also determined based on a number of the user entity's remaining shares of each individual managed resource type of at least two managed resource types allocated to the user entity, wherein a first managed resource type of the two managed resource types is the resource type identified by the type attribute, wherein the first managed resource type has a greater influence in determining the job priority of the subsequent job than other managed resource types excluding the first resource type comprising the at least two managed resource types; and
executing, by at least one resource of the resources of the clustered processing environment identified by the type attribute, the subsequent job, at a given time, the given time determined by the one or more processors based on the assigned job priority.

### Claim 2 (depends on 1)

The method of claim 1, further comprising accepting initialization parameters for the plurality of managed resource types in the clustered processing environment.

### Claim 3 (depends on 2)

The method of claim 2, wherein the initialization parameters comprise at least one unique parameter for the each managed resource type.

### Claim 4 (depends on 2)

The method of claim 2, wherein at least one of the initialization parameters is utilized in the allocating.

### Claim 5 (depends on 1)

The method of claim 1, further comprising accepting an expression to be employed in the assigning, the expression being input by a user with administrative authority.

### Claim 6 (depends on 1)

The method of claim 1, wherein the assigning utilizes an expression comprising a non-zero constant factor corresponding to one managed resource type of the plurality of managed resource types, responsive to the number of the user entity's remaining shares of the one managed resource type of the plurality of managed resource types being greater than zero.

### Claim 7 (depends on 1)

The method of claim 1, wherein the assigning utilizes an expression comprising a proportional factor, the proportional factor being proportional to the number of the user entity's remaining shares of one managed resource type of the plurality of managed resource types.

### Claim 8 (depends on 1)

The method of claim 1, further comprising accepting a designation of the plurality of managed resource types, the designation being provided by a user with administrative authority.

### Claim 9 (depends on 1)

The method of claim 1, further comprising determining a number of remaining shares of the each individual managed resource type for the user entity, said determining using a time-decaying accumulation of used shares of the each individual managed resource type, wherein the number of the user entity's remaining shares of each individual managed resource type allocated to the user entity is independent of usage of the managed resource types by other user entities of the clustered processing environment.

### Claim 10 (depends on 9)

The method of claim 9, further comprising accepting initialization parameters for the multiple managed resource types in the clustered processing environment, wherein at least one of the initialization parameters characterizes the time decaying accumulation of the used shares of at least one managed resource type of the each managed resource type.

### Claim 11

A system for determining scheduling priorities of jobs, each job comprising one or more programs, of different types to facilitate workload management of job execution in a clustered processing environment by enabling management of different types of computing resources separately in the clustered processing environment comprising different types of computing resources, the system comprising:
one or more memories;
one or more processors in communication with the one or more memories; and
program instructions executable by the one or more processors via the memory to perform a method, the method comprising:
allocating, by the one or more processors, shares of multiple managed resource types of a plurality of managed resource types to at least one user entity of a clustered processing environment, wherein the allocating comprises allocating one or more shares of each of the multiple managed resource types to the at least one user entity, wherein the multiple managed resource types are different types of computing resources of one or more computing machines in the clustered processing environment, and wherein resources of the clustered processing environment are shared to perform system tasks; and
assigning, by a job scheduler executing on the one or more processors, a job priority for a subsequent job submitted by a user entity of the at least one user entity, wherein the job priority is determined based on a type attribute of the subsequent job, the type attribute identifying a resource type of the only managed resources types of the different types of computing resources capable of completing the subsequent job and wherein the job priority of the subsequent job is also determined based on a number of the user entity's remaining shares of each individual managed resource type of at least two managed resource types allocated to the user entity, wherein a first managed resource type of the two managed resource types is the resource type identified by the type attribute, wherein the first managed resource type has a greater influence in determining the job priority of the subsequent job than other managed resource types excluding the first resource type comprising the at least two managed resource types; and
executing, by at least one resource of the resources of the clustered processing environment identified by the type attribute, the subsequent job, at a given time, the given time determined by the one or more processors based on the assigned job priority.

### Claim 12 (depends on 11)

The system of claim 11, wherein the job scheduler is further adapted to accept initialization parameters for the plurality of managed resource types in the clustered processing environment.

### Claim 13 (depends on 11)

The system of claim 11, wherein the job scheduler is further adapted to accept an expression to be employed in the assigning, the expression being input by a user with administrative authority.

### Claim 14 (depends on 11)

The system of claim 11, wherein the job scheduler is further adapted to accept a designation of the plurality of managed resource types, the designation being provided by a user with administrative authority.

### Claim 15 (depends on 11)

The system of claim 11, wherein the job scheduler is further adapted to determine a number of remaining shares of the each individual managed resource type for the at least one user entity using a time-decaying accumulation of used shares of the each individual managed resource type, wherein the number of the user entity's remaining shares of each individual managed resource type allocated to the user entity is independent of usage of the managed resource types by other user entities of the clustered processing environment.

### Claim 16

A computer program product for determining scheduling priorities of jobs, each job comprising one or more programs, of different types to facilitate workload management of job execution in a clustered processing environment by enabling management of different types of computing resources separately in the clustered processing environment comprising different types of computing resources, the computer program product comprising:
a non-transitory computer readable storage medium readable by a processor and storing instructions for execution by the processor for performing a method comprising:
allocating, by one or more processors of the clustered processing environment, shares of multiple managed resource types of a plurality of managed resource types to at least one user entity of a clustered processing environment, wherein the allocating comprises allocating one or more shares of each of the multiple managed resource types to the at least one user entity, wherein the multiple managed resource types are different types of computing resources of one or more computing machines in the clustered processing environment, and wherein resources of the clustered processing environment are shared to perform system tasks; and
assigning, by a job scheduler executing on the one or more processors of the clustered processing environment and responsible for scheduling jobs using the multiple managed resource types, a job priority for a subsequent job submitted by a user entity of the at least one user entity, wherein the job priority is determined based on a type attribute of the subsequent job, the type attribute identifying a resource type of the only managed resources types of the different types of computing resources capable of completing the subsequent job and wherein the job priority of the subsequent job is also determined based on a number of the user entity's remaining shares of each individual managed resource type of at least two managed resource types allocated to the user entity, wherein a first managed resource type of the two managed resource types is the resource type identified by the type attribute, wherein the first managed resource type has a greater influence in determining the job priority of the subsequent job than other managed resource types excluding the first resource type comprising the at least two managed resource types; and
executing, by at least one resource of the resources of the clustered processing environment identified by the type attribute, the subsequent job, at a given time, the given time determined by the one or more processors based on the assigned job priority.

### Claim 17 (depends on 16)

The at least one program storage device of claim 16, wherein the method further comprises accepting initialization parameters for the plurality of managed resource types in the clustered processing environment.

### Claim 18 (depends on 16)

The at least one program storage device of claim 16, wherein the method further comprises accepting an expression to be employed in the assigning, the expression being input by a user with administrative authority.

### Claim 19 (depends on 16)

The at least one program storage device of claim 16, wherein the method further comprises accepting a designation of the plurality of managed resource types, the designation being provided by a user with administrative authority.

### Claim 20 (depends on 16)

The at least one program storage device of claim 16, wherein the method further comprises determining a number of remaining shares of the each individual managed resource type for the at least one user entity using a time-decaying accumulation of used shares of the each individual managed resource type, wherein the number of the user entity's remaining shares of each individual managed resource type allocated to the user entity is independent of usage of the managed resource types by other user entities of the clustered processing environment.

### Claim 21 (depends on 1)

The method of claim 1, wherein a greater the number of the user entity's remaining shares, a higher the job priority.

### Claim 22 (depends on 1)

The method of claim 1, wherein the type attribute is used to determine which managed resource type is to have a greater effect than another managed resource type in assigning the job priority.

### Claim 23 (depends on 1)

The method of claim 1, wherein the assigning of the job priority based on a number of the user entity's remaining shares of each individual managed resource type of at least two managed resource types comprises assigning weighted values to each individual managed resource type and utilizing the weighted values in determining the job priority of the subsequent job.

### Claim 24 (depends on 23)

The method of claim 23, further comprising: multiplying the number of the user entity's remaining shares of each individual managed resource type by a respective weighted value for each individual managed resource type.

### Claim 25 (depends on 24)

The method of claim 24, wherein the weighted value assigned to at least one individual managed resource type is greater than zero if the at least one resource is capable of completing the subsequent job.
