Static scheduling algorithms for allocating directed task graphs to multiprocessors
Open Access
- 1 December 1999
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in ACM Computing Surveys
- Vol. 31 (4) , 406-471
- https://doi.org/10.1145/344588.344618
Abstract
Static scheduling of a program represented by a directed task graph on a multiprocessor system to minimize the program completion time is a well-known problem in parallel processing. Since finding an optimal schedule is an NP-complete problem in general, researchers have resorted to devising efficient heuristics. A plethora of heuristics have been proposed based on a wide spectrum of techniques, including branch-and-bound, integer-programming, searching, graph-theory, randomization, genetic algorithms, and evolutionary methods. The objective of this survey is to describe various scheduling algorithms and their functionalities in a contrasting fashion as well as examine their relative merits in terms of performance and time-complexity. Since these algorithms are based on diverse assumptions, they differ in their functionalities, and hence are difficult to describe in a unified context. We propose a taxonomy that classifies these algorithms into different categories. We consider 27 scheduling algorithms, with each algorithm explained through an easy-to-understand description followed by an illustrative example to demonstrate its operation. We also outline some of the novel and promising optimization approaches and current research trends in the area. Finally, we give an overview of the software tools that provide scheduling/mapping functionalities.Keywords
This publication has 116 references indexed in Scilit:
- On parallelizing the multiprocessor scheduling problemIEEE Transactions on Parallel and Distributed Systems, 1999
- A tutorial survey of job-shop scheduling problems using genetic algorithms—I. representationComputers & Industrial Engineering, 1996
- An inherently parallel method for heuristic problem-solving. I. General frameworkIEEE Transactions on Parallel and Distributed Systems, 1995
- Genetic scheduling of task graphsInternational Journal of Electronics, 1994
- Lower and upper bounds on time for multiprocessor optimal schedulesIEEE Transactions on Parallel and Distributed Systems, 1994
- Virtual-channel flow controlIEEE Transactions on Parallel and Distributed Systems, 1992
- Semi-distributed load balancing for massively parallel multicomputer systemsIEEE Transactions on Software Engineering, 1991
- OREGAMI: Tools for mapping parallel computations to parallel architecturesInternational Journal of Parallel Programming, 1991
- Compile-time scheduling and assignment of data-flow program graphs with data-dependent iterationIEEE Transactions on Computers, 1991
- Preemptive scheduling of independent jobs on a hypercubeInformation Processing Letters, 1988