Fair share scheduling for mixed clusters with multiple resources
AssigneeInternational Business Machines Corporation
InventorEnci Zhong
Life of this patent
Estimating the term…
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.
Claims25
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.
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.
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.
Dependencies are inferred from the claim text.