The use of speculative synchronization for optimistically executing unanalyzable serial code in parallel applications is discussed. Speculative synchronization allows threads to speculatively execute past active barriers, busy locks and unset flags. The presence of one or more safe threads in every active synchronization point guarantees the application's forward progress, even in the presence of access conflicts or insufficient cache space for speculative data. Speculative synchronization can easily be transparent to application programmers and parallelizing compilers, and can coexist with uses of conventional synchronization in the same program.
ASJC Scopus subject areas
- Hardware and Architecture
- Electrical and Electronic Engineering