ACM Home Page
Please provide us with feedback. Feedback
Speculative synchronization: applying thread-level speculation to explicitly parallel applications
Full text PdfPdf (1.49 MB)
Source Architectural Support for Programming Languages and Operating Systems archive
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems table of contents
San Jose, California
SESSION: Multiprocessor synchronization and speculation table of contents
Pages: 18 - 29  
Year of Publication: 2002
ISBN:1-58113-574-2
Also published in ...
Authors
José F. Martínez  University of Illinois at Urbana-Champaign, Urbana, IL and Cornell University, Ithaca, NY
Josep Torrellas  University of Illinois at Urbana-Champaign, Urbana, IL
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGOPS: ACM Special Interest Group on Operating Systems
SIGARCH: ACM Special Interest Group on Computer Architecture
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 16,   Downloads (12 Months): 94,   Citation Count: 33
Additional Information:

abstract   references   cited by   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/605397.605400
What is a DOI?

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 Speculative Synchronization, which applies the philosophy behind Thread-Level Speculation (TLS) to explicitly parallel applications. Speculative threads execute past active barriers, busy locks, and unset flags instead of waiting. The proposed hardware checks for conflicting accesses and, if a violation is detected, offending speculative thread is rolled back to the synchronization point and restarted on the fly. TLS's principle of always keeping a safe thread 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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
3
4
 
5
 
6
J. Edler, J. Lipkis, and E. Schonberg. Process management for highly parallel UNIX systems. In USENIX Workshop on Unix and Supercomputers, San Francisco, CA, Sept. 1988.
7
 
8
K. Gharachorloo, A. Gupta, and J. Hennessy. Two techniques to enhance the performance of memory consistency models. In International Conference on Parallel Processing, pages 1355-1364, St. Charles, IL, Aug. 1991.
9
 
10
11
12
 
13
14
15
16
17
 
18
 
19
20
21
 
22
23
24
 
25
J. F. Martínez and J. Torrellas. Speculative Locks for concurrent execution of critical sections in shared-memory multiprocessors. In Workshop on Memory Performance Issues, Gothenburg, Sweden, June 2001.
26
 
27
28
29
 
30
31
 
32
 
33
34
 
35

CITED BY  33
Collaborative Colleagues:
José F. Martínez: colleagues
Josep Torrellas: colleagues