Using dual approximation algorithms for scheduling problems theoretical and practical results
Journal of the ACM (JACM)
Analysis and simulation of a fair queueing algorithm
SIGCOMM '89 Symposium proceedings on Communications architectures & protocols
IEEE/ACM Transactions on Networking (TON)
Evaluating the performance of cache-affinity scheduling in shared-memory multiprocessors
Journal of Parallel and Distributed Computing
UNIX internals: the new frontiers
UNIX internals: the new frontiers
Start-time fair queueing: a scheduling algorithm for integrated services packet switching networks
IEEE/ACM Transactions on Networking (TON)
Fair queuing for aggregated multiple links
Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications
RTAS '01 Proceedings of the Seventh Real-Time Technology and Applications Symposium (RTAS '01)
Theory, Volume 1, Queueing Systems
Theory, Volume 1, Queueing Systems
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
Surplus fair scheduling: a proportional-share CPU scheduling algorithm for symmetric multiprocessors
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
WF2Q: worst-case fair weighted fair queueing
INFOCOM'96 Proceedings of the Fifteenth annual joint conference of the IEEE computer and communications societies conference on The conference on computer communications - Volume 1
Adaptive and scalable comparison scheduling
Proceedings of the 2007 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Efficient and scalable multiprocessor fair scheduling using distributed weighted round-robin
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
Fuzzy expert system for load balancing in symmetric multiprocessor systems
Expert Systems with Applications: An International Journal
Uncovering CPU load balancing policies with harmony
Proceedings of the ACM International Conference on Computing Frontiers
Hi-index | 0.01 |
We present Grouped Distributed Queues (GDQ), the first proportional share scheduler for multiprocessor systems that scales well with a large number of processors and processes. GDQ uses a distributed queue architecture, and achieves accurate proportional fairness scheduling with only O(1) scheduling overhead. GDQ takes a novel approach to distributed queuing: instead of creating per-processor queues that need to be constantly balanced to achieve any measure of proportional sharing fairness, GDQ uses a simple grouping strategy to organize processes into groups based on similar processor time allocation rights, and then assigns processors to groups based on aggregate group shares. Group membership of processes is static, and fairness is achieved by dynamically migrating processors among groups. The set of processors working on a group use simple, low-overhead round-robin queues, while processor reallocation among groups is achieved using a new multiprocessor adaptation of Weighted Fair Queuing. By commoditizing processors and decoupling their allocation from process scheduling, GDQ provides, with only constant scheduling overhead, fairness within a constant of the ideal generalized processor sharing model for process weights with a fixed upper bound. We have implemented GDQ in Linux and measured its performance. Our experimental results show that GDQ has low overhead and scales well with the number of processors and processes.