Skip to Main Content
An algorithm for compile-time static scheduling of task graphs onto multiprocessors is proposed. The proposed algorithm, which is called Dynamic Critical Path (DCP) scheduling algorithm, is different from previously reported algorithms in a number of ways. First, it determines the critical path of the task graph and selects the next node to be scheduled in a dynamic fashion. Second, it rearranges the schedule on each processor dynamically in the sense that the positions of the nodes in the partial schedules are not fixed until all nodes have been considered. Third, it uses an intelligent way to select a suitable processor for a node by looking ahead the potential start times of the remaining critical nodes on that processor and by scheduling relatively less important nodes to the processors already in use. Four related scheduling algorithms are also discussed. Although these algorithms are efficient in general, they possess drawbacks which can lead to poor performance. The proposed DCP algorithm overcomes the drawbacks of these algorithms and outperforms them by a considerable margin. Despite having a number of new features, the DCP algorithm is fast, efficient in terms of the number of processors used and is equally suitable for different types of graph structures.