ACM Home Page
Please provide us with feedback. Feedback
Programming with transactional coherence and consistency (TCC)
Full text PdfPdf (247 KB)
Source Architectural Support for Programming Languages and Operating Systems archive
Proceedings of the 11th international conference on Architectural support for programming languages and operating systems table of contents
Boston, MA, USA
SESSION: New models and architectures table of contents
Pages: 1 - 13  
Year of Publication: 2004
ISBN:1-58113-804-0
Also published in ...
Authors
Lance Hammond  Stanford University, Stanford, CA
Brian D. Carlstrom  Stanford University, Stanford, CA
Vicky Wong  Stanford University, Stanford, CA
Ben Hertzberg  Stanford University, Stanford, CA
Mike Chen  Stanford University, Stanford, CA
Christos Kozyrakis  Stanford University, Stanford, CA
Kunle Olukotun  Stanford University, Stanford, CA
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
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 51,   Citation Count: 37
Additional Information:

abstract   references   cited by   index terms   review   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/1024393.1024395
What is a DOI?

ABSTRACT

Transactional Coherence and Consistency (TCC) offers a way to simplify parallel programming by executing all code within transactions. In TCC systems, transactions serve as the fundamental unit of parallel work, communication and coherence. As each transaction completes, it writes all of its newly produced state to shared memory atomically, while restarting other processors that have speculatively read stale data. With this mechanism, a TCC-based system automatically handles data synchronization correctly, without programmer intervention. To gain the benefits of TCC, programs must be decomposed into transactions. We describe two basic programming language constructs for decomposing programs into transactions, a loop conversion syntax and a general transaction-forking mechanism. With these constructs, writing correct parallel programs requires only small, incremental changes to correct sequential programs. The performance of these programs may then easily be optimized, based on feedback from real program execution, using a few simple techniques.


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
Broadcom Corp., "The Broadcom BCM-1250 Multiprocessor," Presentation at 2002 Embedded Processor Forum, April 2002.
 
6
Byte Magazine, jBYTEmark Benchmark, http://www.byte.com, CMP Media LLC, 1999.
7
8
 
9
 
10
 
11
12
13
14
15
 
16
IBM Corporation, Encina Transactional-C Programmer's Guide and Reference for AIX, SC23-2465-02, 1994.
 
17
Java Grande Forum, Java Grande Benchmark Suite, http://www.epcc.ed.ac.uk/javagrande/, 2000.
 
18
R. Kalla, B. Sinharoy, and J. Tendler, "Simultaneous Multi-threading Implementation in POWER5," Conference Record of Hot Chips 15 Symposium, Palo Alto, CA, August 2003.
 
19
P. Keleher, A. L. Cox, and W. Zwaenepoel, "Lazy Release Consistency for Software Distributed Shared Memory," Proceedings of the Fifth International Symposium on High-Performance Computer Architecture, pp. 279--283, Orlando, FL, 1999.
20
21
 
22
23
 
24
 
25
26
27
28
29
30
 
31
R. Raman, "UltraSparc Gemini: Dual CPU Processor," Conference Record of Hot Chips 15 Symposium, Palo Alto, CA, August 2003.
32
33
 
34
Standard Performance Evaluation Corporation, SPECjbb2000 v1.01, http://www.spec.org/jbb2000/, Warrenton, VA, 2000.
 
35
Standard Performance Evaluation Corporation, SPEC*, http://www.specbench.org/, Warrenton, VA, 1995-2000.
 
36
 
37
 
38
T. Wilkinson, Kaffe Virtual Machine, http://kaffe.org, 1997-2002.

CITED BY  37


REVIEW

"Pierre N. Radulescu-Banu : Reviewer"

Existing parallel programming approaches require the programmer to manage concurrency directly, by creating and synchronizing parallel threads. Transactional coherence and consistency (TCC) offers a way to simplify parallel programming by executin  more...

Collaborative Colleagues:
Lance Hammond: colleagues
Brian D. Carlstrom: colleagues
Vicky Wong: colleagues
Ben Hertzberg: colleagues
Mike Chen: colleagues
Christos Kozyrakis: colleagues
Kunle Olukotun: colleagues