Static Scheduling Algorithms for Allocating Directed Task Graphs to Multiprocessors

Static Scheduling Algorithms for Allocating Directed Task Graphs to Multiprocessors

December 1999 | YU-KWONG KWOK AND ISHFAQ AHMAD
This paper surveys static scheduling algorithms for allocating directed task graphs to multiprocessors. The objective is to minimize the program completion time by efficiently scheduling tasks on processors. Since finding an optimal schedule is NP-complete, researchers have developed various heuristics based on techniques like branch-and-bound, integer programming, graph theory, and genetic algorithms. The paper classifies 27 scheduling algorithms into categories, explaining each with examples and discussing their performance and complexity. It also outlines novel optimization approaches and current research trends, and provides an overview of software tools for scheduling/mapping. The paper begins by introducing the DAG scheduling problem, which involves scheduling tasks represented as a directed acyclic graph (DAG) on a multiprocessor system. The DAG model represents tasks as nodes and dependencies as edges. The scheduling problem is NP-complete in general, but some simplified cases have optimal polynomial-time solutions. The paper discusses variations of the DAG model, including preemptive vs. non-preemptive scheduling, parallel vs. non-parallel tasks, and DAGs with or without conditional branches. The paper then presents a taxonomy of DAG scheduling algorithms, categorizing them into UNC (unbounded number of clusters), BNP (bounded number of processors), TDB (task-duplication based), and APN (arbitrary processor network) algorithms. It describes basic techniques in DAG scheduling, such as computing t-levels, b-levels, and ALAP (as late as possible) start times. The paper also discusses the scheduling of DAGs with restricted structures, arbitrary DAGs without communication, and scheduling in heterogeneous environments. The paper concludes with a discussion of scheduling tools, new ideas, and research trends. It emphasizes the importance of static scheduling in parallel processing and highlights the challenges in designing efficient and optimal scheduling algorithms for real-world applications.This paper surveys static scheduling algorithms for allocating directed task graphs to multiprocessors. The objective is to minimize the program completion time by efficiently scheduling tasks on processors. Since finding an optimal schedule is NP-complete, researchers have developed various heuristics based on techniques like branch-and-bound, integer programming, graph theory, and genetic algorithms. The paper classifies 27 scheduling algorithms into categories, explaining each with examples and discussing their performance and complexity. It also outlines novel optimization approaches and current research trends, and provides an overview of software tools for scheduling/mapping. The paper begins by introducing the DAG scheduling problem, which involves scheduling tasks represented as a directed acyclic graph (DAG) on a multiprocessor system. The DAG model represents tasks as nodes and dependencies as edges. The scheduling problem is NP-complete in general, but some simplified cases have optimal polynomial-time solutions. The paper discusses variations of the DAG model, including preemptive vs. non-preemptive scheduling, parallel vs. non-parallel tasks, and DAGs with or without conditional branches. The paper then presents a taxonomy of DAG scheduling algorithms, categorizing them into UNC (unbounded number of clusters), BNP (bounded number of processors), TDB (task-duplication based), and APN (arbitrary processor network) algorithms. It describes basic techniques in DAG scheduling, such as computing t-levels, b-levels, and ALAP (as late as possible) start times. The paper also discusses the scheduling of DAGs with restricted structures, arbitrary DAGs without communication, and scheduling in heterogeneous environments. The paper concludes with a discussion of scheduling tools, new ideas, and research trends. It emphasizes the importance of static scheduling in parallel processing and highlights the challenges in designing efficient and optimal scheduling algorithms for real-world applications.
Reach us at info@study.space