Hierarchical scheduling method for processing tasks having precedence constraints on a parallel processing system
First Claim
1. A method of scheduling a multiplicity of tasks having precedence, constraints on a plurality of processors operating in parallel, comprising the steps of:
- (a) defining a plurality of jobs, each of said jobs comprising a portion of said tasks and precedence constraints relating pairs of said tasks which are included only within a single job;
(b) for each said job, creating a plurality, of task schedules for said tasks of said job, each of said task schedules corresponding to a different number of said processors which might possibly be allotted to said job and respecting any precedence constraints among said tasks of said job;
(c) determining an estimated job execution time for each of said task schedules;
(d) using said estimated job execution times for each of said jobs and for each different number of processors which might be allocated to each of said jobs, determining an allotment of processors for each of said jobs;
(e) creating a job schedule for said jobs using said determined allotments; and
(f) executing said jobs on said processors using a job schedule created in step (e).
1 Assignment
0 Petitions
Accused Products
Abstract
A plurality of queries (jobs) which consist of sets of tasks with precedence constraints between them are optimally scheduled in two stages of scheduling for processing on a parallel processing system. In a first stage of scheduling, multiple optimum schedules are created for each job, one optimum schedule for each possible number of processors which might be used to execute each job, and an estimated job execution time is determined for each of the optimum schedules created for each job, thereby producing a set of estimated job execution times for each job which are a function of the number of processors used for the job execution. Precedence constraints between tasks in each job are respected in creating all of these optimum schedules. Any known optimum scheduling method for parallel processing tasks that have precedence constraints among tasks may be used but a novel preferred method is also disclosed. The second stage of scheduling utilizes the estimated job execution times determined in the first stage of scheduling to create an overall optimum schedule for the jobs. The second stage of scheduling does not involve precedence constraints because the precedence constraints are between tasks within the same job and not between tasks in separate jobs, so jobs may be scheduled without observing any precedence constraints. Any known optimum scheduling method for the parallel processing of jobs that have no precedence constraints may be used, but a novel preferred method is also disclosed.
162 Citations
9 Claims
-
1. A method of scheduling a multiplicity of tasks having precedence, constraints on a plurality of processors operating in parallel, comprising the steps of:
-
(a) defining a plurality of jobs, each of said jobs comprising a portion of said tasks and precedence constraints relating pairs of said tasks which are included only within a single job; (b) for each said job, creating a plurality, of task schedules for said tasks of said job, each of said task schedules corresponding to a different number of said processors which might possibly be allotted to said job and respecting any precedence constraints among said tasks of said job; (c) determining an estimated job execution time for each of said task schedules; (d) using said estimated job execution times for each of said jobs and for each different number of processors which might be allocated to each of said jobs, determining an allotment of processors for each of said jobs; (e) creating a job schedule for said jobs using said determined allotments; and (f) executing said jobs on said processors using a job schedule created in step (e). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for scheduling a plurality of separate jobs on a computing system having a multiplicity of processors operating in parallel, each of said jobs comprising at least one task and at least some of said jobs consisting of a plurality of tasks among which there may be precedence constraints, said processors being each capable of executing a separate task simultaneously, comprising the steps of:
-
(a) creating a set of estimated job execution times for each job, each said estimated job execution time in any said set corresponding to a different number of said processors which might possibly be dedicated to the execution of said each job, said estimated job execution times being created while obeying any precedence constraints for tasks which comprise said each job; (b) for each said estimated job execution time, computing the product of job execution time and number of processors corresponding thereto; (c) for each said set of estimated job execution times, identifying a minimum one of said computed products therefor and tentatively assigning said number of processors corresponding to said identified minimum product for execution of said each job; (d) creating a tentative overall schedule for execution of all of said jobs in parallel by applying a two dimensional packing algorithm to said tasks within each of said jobs using said tentatively assigned number of processors for each said job; (c) estimating an overall execution time corresponding to said tentative overall schedule and recording said estimated overall execution time; (f) determining whether there is any idle processor time in said tentative overall schedule; (g) if so, identifying a job in said overall schedule which has less than a maximum number of processors tentatively assigned for execution of said identified job and which is associated with a maximum amount of idle processor time; (h) increasing the number of processors tentatively assigned for execution of said identified job; (i) repeating steps (d)through (f) until said idle processor time in said tentative overall schedule cannot be further reduced thereby; and
then(j) selecting a minimum overall execution time from said recorded overall execution times and using said tentative overall schedule which corresponds to said minimum recorded overall execution time for executing said jobs in parallel on said processors.
-
Specification