Adaptive load sharing in homogeneous distributed systems
IEEE Transactions on Software Engineering
A comparison of receiver-initiated and sender-initiated adaptive load sharing
Performance Evaluation
Parallel computing: theory and comparisons
Parallel computing: theory and comparisons
Principles of artificial intelligence
Principles of artificial intelligence
A Trace-Driven Simulation Study of Dynamic Load Balancing
IEEE Transactions on Software Engineering
Impact of self-scheduling order on performance on multiprocessor systems
ICS '88 Proceedings of the 2nd international conference on Supercomputing
Distributed scheduling for a changing environment
Distributed scheduling for a changing environment
Dynamic load balancing for distributed memory multiprocessors
Journal of Parallel and Distributed Computing
Hector: A Hierarchically Structured Shared-Memory Multiprocessor
Computer - Special issue on experimental research in computer architecture
Transparent process migration: design alternatives and the sprite implementation
Software—Practice & Experience
Execution time support for adaptive scientific algorithms on distributed
Concurrency: Practice and Experience
Factoring: a practical and robust method for scheduling parallel loops
Proceedings of the 1991 ACM/IEEE conference on Supercomputing
A Dynamic Load-Balancing Policy with a Central Job Dispatcher (LBC)
IEEE Transactions on Software Engineering
The Stanford Dash Multiprocessor
Computer
Factoring: a method for scheduling parallel loops
Communications of the ACM
A dynamic scheduling method for irregular parallel programs
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Architecture, design, and performance of Application System/400 (AS/400) multiprocessors
IBM Journal of Research and Development
Introduction to parallel computing: design and analysis of algorithms
Introduction to parallel computing: design and analysis of algorithms
Cache coherence in large-scale shared-memory multiprocessors: issues and comparisons
ACM Computing Surveys (CSUR)
Models of machines and computation for mapping in multicomputers
ACM Computing Surveys (CSUR)
Self-scheduling on distributed-memory machines
Proceedings of the 1993 ACM/IEEE conference on Supercomputing
Combining static and dynamic scheduling on distributed-memory multiprocessors
ICS '94 Proceedings of the 8th international conference on Supercomputing
Exploiting cache affinity in software cache coherence
ICS '94 Proceedings of the 8th international conference on Supercomputing
A Hierarchical Task Queue Organization for Shared-Memory Multiprocessor Systems
IEEE Transactions on Parallel and Distributed Systems
Coscheduling based on runtime identification of activity working sets
International Journal of Parallel Programming
Evaluating the performance of cache-affinity scheduling in shared-memory multiprocessors
Journal of Parallel and Distributed Computing
Scheduling parallel computations in a heterogeneous environment
Scheduling parallel computations in a heterogeneous environment
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
Affinity scheduling of unbalanced workloads
Proceedings of the 1994 ACM/IEEE conference on Supercomputing
Automatic Generation of Self-Scheduling Programs
IEEE Transactions on Parallel and Distributed Systems
Trapezoid Self-Scheduling: A Practical Scheduling Scheme for Parallel Compilers
IEEE Transactions on Parallel and Distributed Systems
Using Processor-Cache Affinity Information in Shared-Memory Multiprocessor Scheduling
IEEE Transactions on Parallel and Distributed Systems
Analysis of Macro-Dataflow Dynamic Scheduling on Nonuniform Memory Access Architectures
IEEE Transactions on Parallel and Distributed Systems
Strategies for Dynamic Load Balancing on Highly Parallel Computers
IEEE Transactions on Parallel and Distributed Systems
Using Processor Affinity in Loop Scheduling on Shared-Memory Multiprocessors
IEEE Transactions on Parallel and Distributed Systems
A taxonomy of scheduling in general-purpose distributed computing systems
IEEE Transactions on Software Engineering
Load balancing in homogeneous broadcast distributed systems
Proceedings of the Computer Network Performance Symposium
Dynamic scheduling strategies for shared-memory multiprocessors
ICDCS '96 Proceedings of the 16th International Conference on Distributed Computing Systems (ICDCS '96)
Task allocation in a multi-server system
Journal of Scheduling
Dynamic Affinity Cluster Allocation in a Shared Disks Cluster
The Journal of Supercomputing
Journal of Parallel and Distributed Computing
CellSs: Scheduling techniques to better exploit memory hierarchy
Scientific Programming - High Performance Computing with the Cell Broadband Engine
A bipartite genetic algorithm for multi-processor task scheduling
International Journal of Parallel Programming
A hybrid heuristic-genetic algorithm for task scheduling in heterogeneous processor networks
Journal of Parallel and Distributed Computing
Hi-index | 0.00 |
Algorithms for scheduling independent tasks on to the processors of a multiprocessor system must trade-off processor load balance, memory locality, and scheduling overhead. Most existing algorithms, however, do not adequately balance these conflicting factors. This paper introduces the Self-Adjusting Dynamic Scheduling (SADS) class of algorithms that use a unified cost model to explicitly account for these factors at runtime. A dedicated processor performs scheduling in phases by maintaining a tree of partial schedules and incrementally assigning tasks to the least-cost schedule. A scheduling phase terminates whenever any processor becomes idle, at which time partial schedules are distributed to the processors. An extension of the basic SADS algorithm, called DBSADS, controls the scheduling overhead by giving higher priority to partial schedules with more task-to-processor assignments. These algorithms are compared to two distributed scheduling algorithms within a database application on an Intel Paragon distributed-memory multiprocessor system.