Multi-objective allocation of computational jobs in client-server or hosting environments
First Claim
1. A method of processing a computational job with a plurality of processors, the method comprising:
- receiving a request to process a job, wherein a priority level is associated with the job;
designating a first group of the processors as being available to process the job, wherein the first group of processors is designated for processing high priority jobs and wherein the number of processors in the first group is based on the priority level associated with the job;
designating a second group of the processors as being available to process the job, wherein the second group of processors is designated for processing high or low priority jobs and wherein for each processor in the second group a current utilization rate of the processor is less than a second predetermined utilization rate;
determining a number of processors (N) to process the job, wherein N>
1; and
processing the job with the N processors including one or more of the processors selected from the first group of processors and one or more of the processors selected from the second group of processors, wherein at least some of the N processors are selected from the first and second groups based on the selected processors having the lowest current utilization rates of the processors in the respective groups.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of processing a computational job with a plurality of processors is disclosed. A request to process a job is received, where the job has a priority level associated with the job. A first group of the processors is designated as being available to process the job, where the number of processors in the first group is based on the priority level associated with the job. A second group of the processors is designated as being available to process the job, where for each processor in the second group a current utilization rate of the processor is less than a second predetermined utilization rate. Then, the job is processed with one or more of the processors selected from the first group of processors and the second group of processors.
-
Citations
20 Claims
-
1. A method of processing a computational job with a plurality of processors, the method comprising:
-
receiving a request to process a job, wherein a priority level is associated with the job; designating a first group of the processors as being available to process the job, wherein the first group of processors is designated for processing high priority jobs and wherein the number of processors in the first group is based on the priority level associated with the job; designating a second group of the processors as being available to process the job, wherein the second group of processors is designated for processing high or low priority jobs and wherein for each processor in the second group a current utilization rate of the processor is less than a second predetermined utilization rate; determining a number of processors (N) to process the job, wherein N>
1; andprocessing the job with the N processors including one or more of the processors selected from the first group of processors and one or more of the processors selected from the second group of processors, wherein at least some of the N processors are selected from the first and second groups based on the selected processors having the lowest current utilization rates of the processors in the respective groups. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of processing a plurality of computational jobs with a plurality of processors, the method comprising:
-
designating a first group of the processors as being available to process a first job, wherein the first group of processors is designated for processing high priority jobs and wherein the number of processors in the first group is based on a priority level associated with the first job; designating a second group of the processors as being available to process the job, wherein the second group of processors is designated for processing high or low priority jobs and wherein for each processor in the second group an initial utilization rate of the processor is less than or equal to an predetermined utilization rate that is based on the priority level and on a processor subset to which the processor belongs; determining a number of processors (N) to process the first job, wherein N>
1;processing the first job with the N processors including one or more of the processors selected from the first group of processors and one or more of the processors selected from the second group of processors, wherein at least some of the N processors are selected from the first and second groups based on the selected processors having the lowest current utilization rates of the processors in the respective groups; determining that a processor in the second group that is processing the first job has an updated utilization rate that is greater than the predetermined utilization rate; and
then in response to the determination, processing the first job with a plurality of processors selected from the first group of processors and the second group, not including the processor that had a utilization rate greater than the first predetermined utilization rate. - View Dependent Claims (11)
-
-
12. A system for processing a computational job, the system comprising:
-
an input queue adapted for receiving a computational job to process, wherein a priority level is associated with the job;
a plurality of processors;a utilization rate service engine adapted to determine a utilization rate of the processors; a processor grouping engine configured for grouping processors of the plurality of processors into; a first group of processors designated as being available to process the job, wherein the number of processors in the first group is based on the priority level associated with the job and wherein the first group of processors is designated for processing high priority job, and a second group of processors, for which a current utilization rate is less than a second predetermined utilization rate and designated as being available to process the job, wherein the second group of processors is designated for processing high or low priority jobs; and a scheduling engine adapted to receive information about the priority level of the job and about the utilization rates of the processors and to schedule the job to be processed by a number (N) of processors, wherein N>
1, including one or more of the processors selected from the first group of processors and one or more of the processors selected from the second group of processors, wherein at least some of the N processors are selected from the first and second groups based on the selected processors having the lowest current utilization rates of the processors in the respective groups. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification