Scheduling precedence graphs in systems with interprocessor communication times
SIAM Journal on Computing
Automatic determination of grain size for efficient parallel processing
Communications of the ACM - Special issue: multiprocessing
Scheduling parallel program tasks onto arbitrary target machines
Journal of Parallel and Distributed Computing - Special issue: software tools for parallel programming and visualization
Towards an architecture-independent analysis of parallel algorithms
SIAM Journal on Computing
Analysis and evaluation of heuristic methods for static task scheduling
Journal of Parallel and Distributed Computing
A vertically layered allocation scheme for data flow systems
Journal of Parallel and Distributed Computing
Proceedings of the 1992 ACM/IEEE conference on Supercomputing
A two-pass scheduling algorithm for parallel programs
Parallel Computing
Task Clustering and Scheduling for Distributed Memory Parallel Architectures
IEEE Transactions on Parallel and Distributed Systems
IEEE Transactions on Parallel and Distributed Systems
Efficient scheduling of arbitrary task graphs to multiprocessors using a parallel genetic algorithm
Journal of Parallel and Distributed Computing - Special issue on parallel evolutionary computing
On Exploiting Task Duplication in Parallel Program Scheduling
IEEE Transactions on Parallel and Distributed Systems
A comparison of list schedules for parallel processing systems
Communications of the ACM
Partitioning and Scheduling Parallel Programs for Multiprocessors
Partitioning and Scheduling Parallel Programs for Multiprocessors
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
Grain Size Determination for Parallel Processing
IEEE Software
Hypertool: A Programming Aid for Message-Passing Systems
IEEE Transactions on Parallel and Distributed Systems
IEEE Transactions on Parallel and Distributed Systems
DSC: Scheduling Parallel Tasks on an Unbounded Number of Processors
IEEE Transactions on Parallel and Distributed Systems
An Inherently Parallel Method for Heuristic Problem-Solving: Part I-General Framework
IEEE Transactions on Parallel and Distributed Systems
A taxonomy of scheduling in general-purpose distributed computing systems
IEEE Transactions on Software Engineering
Static scheduling algorithms for allocating directed task graphs to multiprocessors
ACM Computing Surveys (CSUR)
Task Allocation on a Network of Processors
IEEE Transactions on Computers
Sequential and Parallel Cellular Automata-Based Scheduling Algorithms
IEEE Transactions on Parallel and Distributed Systems
An integer programming approach for static mapping onto heterogeneous real-time systems
IPDPS '01 Proceedings of the 15th International Parallel & Distributed Processing Symposium
Run-Time Adaptation with Resource Co-Allocation for Grid Environments
IPDPS '01 Proceedings of the 15th International Parallel & Distributed Processing Symposium
Journal of Parallel and Distributed Computing
Journal of Parallel and Distributed Computing
Proceedings of the conference on Design, automation and test in Europe: Proceedings
On multiprocessor task scheduling using efficient state space search approaches
Journal of Parallel and Distributed Computing
A probabilistic scheduling heuristic for computational grids
Multiagent and Grid Systems
An Evolutionary Approach to Task Graph Scheduling
ICANNGA '07 Proceedings of the 8th international conference on Adaptive and Natural Computing Algorithms, Part I
Scheduling parallel tasks onto NUMA multiprocessors with inter-processor communication overhead
ISPA'03 Proceedings of the 2003 international conference on Parallel and distributed processing and applications
A hybrid algorithm for scheduling workflow applications in grid environments (ICPDP)
OTM'07 Proceedings of the 2007 OTM confederated international conference on On the move to meaningful internet systems: CoopIS, DOA, ODBASE, GADA, and IS - Volume Part II
A novel task scheduling algorithm for distributed heterogeneous computing systems
PARA'04 Proceedings of the 7th international conference on Applied Parallel Computing: state of the Art in Scientific Computing
Hi-index | 0.00 |
Existing heuristics for scheduling a node and edge weighted directed task graph to multiple processors can produce satisfactory solutions but incur high time complexities, which tend to exacerbate in more realistic environments with relaxed assumptions. Consequently, these heuristics do not scale well and cannot handle problems of moderate sizes. A natural approach to reducing complexity, while aiming for a similar or potentially better solution, is to parallelize the scheduling algorithm. This can be done by partitioning the task graphs and concurrently generating partial schedules for the partitioned parts, which are then concatenated to obtain the final schedule. The problem, however, is nontrivial as there exists dependencies among the nodes of a task graph which must be preserved for generating a valid schedule. Moreover, the time clock for scheduling is global for all the processors (that are executing the parallel scheduling algorithm), making the inherent parallelism invisible. In this paper, we introduce a parallel algorithm that is guided by a systematic partitioning of the task graph to perform scheduling using multiple processors. The algorithm schedules both the tasks and messages, and is suitable for graphs with arbitrary computation and communication costs, and is applicable to systems with arbitrary network topologies using homogeneous or heterogeneous processors. We have implemented the algorithm on the Intel Paragon and compared it with three closely related algorithms. The experimental results indicate that our algorithm yields higher quality solutions while using an order of magnitude smaller scheduling times. The algorithm also exhibits an interesting trade-off between the solution quality and speedup while scaling well with the problem size.