Implicit coscheduling
- 1 August 2001
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Computer Systems
- Vol. 19 (3) , 283-331
- https://doi.org/10.1145/380749.380764
Abstract
In modern distributed systems, coordinated time-sharing is required for communicating processes to leverage the performance of switch-based networks and low-overhead protocols. Coordinated time-sharing has traditionally been achieved with gang scheduling or explicit coscheduling, implementations of which often suffer from many deficiencies: multiple points of failure, high context-switch overheads, and poor interaction with client-server, interactive, and I/O -intensive workloads. Implicit coscheduling dynamically coordinates communicating processes across distributed machines without these structural deficiencies. In implicit coscheduling, no communication is required across operating systems schedulers; instead, cooperating processes achieve coordination by reacting to implicit information carried by communication existing within the parallel application. The implementation of this approach is simple and allows participating nodes to act autonomously. We introduce two key mechanisms in implicit coscheduling. The first is conditional two-phase waiting, a generalization of traditional two-phase waiting in which spin-time may be increased depending upon events occuring while the process waits. The second is an extension to stride scheduling that provides preemption and is fair to processes that block. To demonstrate that implicit coscheduling performs well, we show results from an extensive set of simulation and implementation experiments. To exercise the conditional two-phase waiting algorithm, we examine three workloads: bulk-synchronous and continuous-communication synthetic applications and application kernels written in the Split-C language. To exercise the local scheduler, we examine competing jobs with different communication characteristics. We demonstrate that our implementation scales well with the number of jobs and workstations and is robust to process placement. Our experiments show that implicit coscheduling is effective and fair for a wide range of workloads; most perform within 30% of an idealized model of gang scheduling.Keywords
This publication has 30 references indexed in Scilit:
- The impact of I/O on program behavior and parallel schedulingACM SIGMETRICS Performance Evaluation Review, 1998
- Fast parallel sorting under LogP: experience with the CM-5IEEE Transactions on Parallel and Distributed Systems, 1996
- Myrinet: a gigabit-per-second local area networkIEEE Micro, 1995
- Competitive randomized algorithms for nonuniform problemsAlgorithmica, 1994
- Cooperative shared memoryACM Transactions on Computer Systems, 1993
- A performance evaluation of several priority policies for parallel processing systemsJournal of the ACM, 1993
- Achieving service rate objectives with decay usage schedulingIEEE Transactions on Software Engineering, 1993
- PVM: A framework for parallel distributed computingConcurrency: Practice and Experience, 1990
- A fair share schedulerCommunications of the ACM, 1988
- Data SecurityACM Computing Surveys, 1979