Speculative synchronization
Top Cited Papers
- 1 October 2002
- conference paper
- Published by Association for Computing Machinery (ACM)
- Vol. 36 (5) , 18-29
- https://doi.org/10.1145/605397.605400
Abstract
Barriers, locks, and flags are synchronizing operations widely used programmers and parallelizing compilers to produce race-free parallel programs. Often times, these operations are placed suboptimally, either because of conservative assumptions about the program, or merely for code simplicity.We propose is key to our proposal: in any speculative barrier, lock, or flag, the existence of one or more safe threads at all times guarantees forward progress, even in the presence of access conflicts or speculative buffer overflow. Our proposal requires simple hardware and no programming effort. Furthermore, it can coexist with conventional synchronization at run time.We use simulations to evaluate 5 compiler- and hand-parallelized applications. Our results show a reduction in the time lost to synchronization of 34% on average, and a reduction in overall program execution time of 7.4% on average.Keywords
This publication has 24 references indexed in Scilit:
- Effective fine-grain synchronization for automatically parallelized programs using optimistic synchronization primitivesACM Transactions on Computer Systems, 1999
- A chip-multiprocessor architecture with speculative multithreadingIEEE Transactions on Computers, 1999
- OpenMP: an industry standard API for shared-memory programmingIEEE Computational Science and Engineering, 1998
- Scheduler-conscious synchronizationACM Transactions on Computer Systems, 1997
- The Mips R10000 superscalar microprocessorIEEE Micro, 1996
- Parallel programming with PolarisComputer, 1996
- Software caching and computation migration in OldenPublished by Association for Computing Machinery (ACM) ,1995
- A methodology for implementing highly concurrent data objectsACM Transactions on Programming Languages and Systems, 1993
- A unified formalization of four shared-memory modelsIEEE Transactions on Parallel and Distributed Systems, 1993
- On optimistic methods for concurrency controlACM Transactions on Database Systems, 1981