Scheduler-conscious synchronization
- 1 February 1997
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Computer Systems
- Vol. 15 (1) , 3-40
- https://doi.org/10.1145/244764.244765
Abstract
Efficient synchronization is important for achieving good performance in parallel programs, especially on large-scale multiprocessors. Most synchronization algorithms have been designed to run on a dedicated machine, with one application process per processor, and can suffer serious performance degradation in the presence of multiprogramming. Problems arise when running processes block or, worse, busy-wait for action on the part of a process that the scheduler has chosen not to run. We show that these problems are particularly severe for scalable synchronization algorithms based on distributed data structures. We then describe and evaluate a set of algorithms that perform well in the presence of multiprogramming while maintaining good performance on dedicated machines. We consider both large and small machines, with a particular focus on scalability, and examine mutual-exclusion locks, reader-writer locks, and barriers. Our algorithms vary in the degree of support required from the kernel scheduler. We find that while it is possible to avoid pathological performance problems using previously proposed kernel mechanisms, a modest additional widening of the kernel/user interface can make scheduler-conscious synchronization algorithms significantly simpler and faster, with performance on dedicated machines comparable to that of scheduler-oblivious algorithms.Keywords
This publication has 26 references indexed in Scilit:
- A methodology for implementing highly concurrent data objectsACM Transactions on Programming Languages and Systems, 1993
- Waiting algorithms for synchronization in large-scale multiprocessorsACM Transactions on Computer Systems, 1993
- SPLASHACM SIGARCH Computer Architecture News, 1992
- Scheduler activationsACM Transactions on Computer Systems, 1992
- The effect of scheduling discipline on spin overhead in shared memory parallel systemsIEEE Transactions on Parallel and Distributed Systems, 1991
- Algorithms for scalable synchronization on shared-memory multiprocessorsACM Transactions on Computer Systems, 1991
- Remote evaluationACM Transactions on Programming Languages and Systems, 1990
- The performance of spin lock alternatives for shared-memory multiprocessorsIEEE Transactions on Parallel and Distributed Systems, 1990
- Two algorithms for barrier synchronizationInternational Journal of Parallel Programming, 1988
- Computation and communication in R*ACM Transactions on Computer Systems, 1984