The Balanced Dynamic Critical Path Scheduling Algorithm of Dependent Task Graphs
Wei Shi · Chinese Journal of Computers · 2001
An efficient scheduling of a parallel program onto multiple processors is vital for achieving high performance in a parallel computer system. The objective of static scheduling is to assign the nodes of the task graph to the processors such that the schedule length is minimized without violating the precedence constraints. Because list scheduling has shown good performance and is less difficult to design, it has been studied and used widely. In list scheduling algorithms, a parallel program is represented by a directed acyclic graph. We analyze two typical list scheduling algorithms——MCP algorithm and ETF algorithm, and find that there are some weakness in them. In this paper, we propose a better list scheduling algorithm——BDCP algorithm. This algorithm adopts dynamic critical path and takes nodes on the critical path and nodes on the non-critical path into consideration fairly, which makes the nodes that have the greatest influence to the scheduling length of the task graph be scheduled first. This greatly shortens the scheduling length of the task graph. The BDCP algorithm determines node priorities dynamically by assigning an attribute called earliest possible start time (EPST) to unscheduled nodes at each scheduling step. The node with highest priority is scheduled first no matter whether the node is on the critical path or not. Tie is broken by scheduling the one with a higher static priority. The static node priority is defined as the maximum sum of computation costs along a path from the node to an exit node. The rule for selecting a processor to hold the selected node is that the selection should make the length of the critical path become shortest. In the BDCP algorithm, the critical path is dynamically changed with the nodes being scheduled onto processors and its length is obtained by calculating the maximum of the EPSTs of exit nodes in the graph. The complexity of the BDCP algorithm is O(v2). We generate synthetic task graphs of various commonly encountered structures including in-tree, out-tree and fork-join to compare the BDCP algorithm with the other algorithms. For each kind of task graph, we generate a number of graphs varying the number of nodes and values of communication to computation ratio. The result of experiments shows that BDCP algorithm is obviously better than MCP and ETF algorithms.