Scheduling and mapping of precedence-constrained task graphs to the processors is one of the most crucial problems in parallel and distributed computing and thus continues to spur a great deal of interest from the researchers. Due to the NP-completeness of the problem, a large portion of related work is based on heuristic approaches with the objective of finding good solutions within a reasonable amount of time. The major drawback with most of the existing heuristics, however, is that they are evaluated with small problem sizes and thus their scalability is unknown. As a result, they are not applicable in a real environment when presented with moderately large problems. Furthermore, most heuristics ignore the important details of the application and the target system, or do not perform well when these details are taken into account. In this research, we propose three scheduling algorithms for achieving the conflicting goals of high-performance and low time-complexity. In addition, we aim at making our algorithms scalable and applicable when used in a real environment. The novelty of our algorithms is their efficient scheduling strategies which yield better solutions without incurring a high complexity. The second novelty is that our algorithms are parallelized which further lowers their complexities. The first algorithm, called the Parallel Fast Assignment using Search Technique (PFAST) algorithm, is a linear-time algorithm and uses an effective neighborhood search strategy for finding a good solution in a short time. The PFAST algorithm constructs an initial solution using a fast heuristic and then refines the solution using a parallel random search. The second algorithm, called the Parallel Genetic Search (PGS) algorithm, employs a parallel genetic technique which is based on the premises that the recombinative nature of a genetic algorithm can potentially determine an optimal schedule. Using well-defined crossover and mutation operators, the PGS algorithm judiciously combines good building-blocks of potential solutions to move towards a better solution. The third algorithm, called the Parallel Bubble Scheduling and Allocation (PBSA) algorithm, is applicable in a general distributed computing environment in that it takes into account more considerations such as link contention, heterogeneity of processors, and the network topology. The PBSA algorithm uses an efficient strategy for simultaneous scheduling of tasks and messages. The algorithm is parallelized by partitioning the task graph to smaller graphs, finding their sub-schedules concurrently, and then combining these sub-schedules. The proposed algorithms have been evaluated through extensive experimentations and yield consistently better performance when compared with numerous existing algorithms.
Cited By
- Miomandre H, Hascoët J, Desnos K, Martin K, de Dinechin Kalray B and Nezan J Embedded Runtime for Reconfigurable Dataflow Graphs on Manycore Architectures Proceedings of the 9th Workshop and 7th Workshop on Parallel Programming and RunTime Management Techniques for Manycore Architectures and Design Tools and Architectures for Multicore Embedded Computing Platforms, (51-56)
- Pelcat M, Mercat A, Desnos K, Maggiani L, Liu Y, Heulot J, Nezan J, Hamidouche W, Menard D and Bhattacharyya S (2019). Reproducible Evaluation of System Efficiency With a Model of Architecture, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 37:10, (2050-2063), Online publication date: 1-Oct-2018.
- Pelcat M, Menuet P, Aridhi S and Nezan J Sealable compile-time scheduler for multi-core architectures Proceedings of the Conference on Design, Automation and Test in Europe, (1552-1555)
- Bansal S, Kumar P and Singh K (2003). An Improved Duplication Strategy for Scheduling Precedence Constrained Graphs in Multiprocessor Systems, IEEE Transactions on Parallel and Distributed Systems, 14:6, (533-544), Online publication date: 1-Jun-2003.
- Kwok Y and Ahmad I (1999). Static scheduling algorithms for allocating directed task graphs to multiprocessors, ACM Computing Surveys (CSUR), 31:4, (406-471), Online publication date: 1-Dec-1999.
Recommendations
A Parallel Algorithm For Compile-Time Scheduling Of Parallel Programs On Multiprocessors
PACT '97: Proceedings of the 1997 International Conference on Parallel Architectures and Compilation TechniquesProposes a parallel randomized algorithm, called PFAST (Parallel Fast Assignment using Search Technique), for scheduling parallel programs represented by directed acyclic graphs (DAGs) during compile-time. The PFAST algorithm has O(e) time complexity, ...
Linear-Time Algorithms for Scheduling on Parallel Processors
Linear-time algorithms are presented for several problems of scheduling n equal-length tasks on m identical parallel processors subject to precedence constraints. This improves upon previous time bounds for the maximum lateness problem with treelike ...
Parallel Scheduling Algorithms
<P>Parallel algorithms are given for scheduling problems such as scheduling to minimize the number of tardy jobs, job sequencing with deadlines, scheduling to minimize earliness and tardiness penalties, channel assignment, and minimizing the mean finish ...