Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

The Atomos transactional programming language

Published: 11 June 2006 Publication History

Abstract

Atomos is the first programming language with implicit transactions, strong atomicity, and a scalable multiprocessor implementation. Atomos is derived from Java, but replaces its synchronization and conditional waiting constructs with simpler transactional alternatives.The Atomos watch statement allows programmers to specify fine-grained watch sets used with the Atomos retry conditional waiting statement for efficient transactional conflict-driven wakeup even in transactional memory systems with a limited number of transactional contexts. Atomos supports open-nested transactions, which are necessary for building both scalable application programs and virtual machine implementations.The implementation of the Atomos scheduler demonstrates the use of open nesting within the virtual machine and introduces the concept of transactional memory violation handlers that allow programs to recover from data dependency violations without rolling back.Atomos programming examples are given to demonstrate the usefulness of transactional programming primitives. Atomos and Java are compared through the use of several benchmarks. The results demonstrate both the improvements in parallel programming ease and parallel program performance provided by Atomos.

References

[1]
A.-R. Adl-Tabatabai, B. Lewis, V. Menon, B. R. Murphy, B. Saha, and T. Shpeisman. Compiler and runtime support for efficient software transactional memory. In PLDI '06: Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, New York, NY, USA, 2006. ACM Press.
[2]
V. Agarwal, M. S. Hrishikesh, S. W. Keckler, and D. Burger. Clock rate versus IPC: the end of the road for conventional microarchitectures. In Proceedings of the 27th Annual International Symposium on Computer Architecture, pages 248--259, 2000.
[3]
E. Allen, D. Chase, V. Luchangco, J.-W. Maessen, S. Ryu, G. L. S. Jr., and S. Tobin-Hochstadt. The Fortress Language Specification. Sun Microsystems, 2005.
[4]
B. Alpern, C. R. Attanasio, J. J. Barton, M. G. Burke, P. Cheng, J.-D. Choi, A. Cocchi, S. J. Fink, D. Grove, M. Hind, S. F. Hummel, D. Lieber, V. Litvinov, M. F. Mergen, T. Ngo, J. R. Russell, V. Sarkar, M. J. Serrano, J. C. Shepherd, S. E. Smith, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalape no virtual machine. IBM Systems Journal, 39(1):211--238, 2000.
[5]
C. S. Ananian, K. Asanović, B. C. Kuszmaul, C. E. Leiserson, and S. Lie. Unbounded Transactional Memory. In Proceedings of the 11th International Symposium on High-Performance Computer Architecture (HPCA'05), pages 316--327, San Franscisco, California, 2005.
[6]
C. Blundell, E. C. Lewis, and M. M. K. Martin. Deconstructing transactional semantics: The subtleties of atomicity. In Workshop on Duplicating, Deconstructing, and Debunking (WDDD), June 2005.
[7]
H.-J. Boehm. Threads cannot be implemented as a library. In PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pages 261--268, New York, NY, USA, 2005. ACM Press.
[8]
The Broadcom BCM1250 Multiprocessor. Technical report, Broadcom Corporation, April 2002.
[9]
M. Campione, K. Walrath, and A. Huml. The Java Tutorial. Addison-Wesley Professional, third edition, January 2000.
[10]
B. D. Carlstrom, J. Chung, H. Chafi, A. McDonald, C. Cao Minh, L. Hammond, C. Kozyrakis, and K. Olukotun. Transactional Execution of Java Programs. In OOPSLA 2005 Workshop on Synchronization and Concurrency in Object-Oriented Languages (SCOOL). October 2005.
[11]
P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: an object-oriented approach to non-uniform cluster computing. In OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applications, pages 519--538, New York, NY, USA, 2005. ACM Press.
[12]
Cray. Chapel Specification. February 2005.
[13]
J. Danaher, I.-T. Lee, and C. Leiserson. The JCilk Language for Multithreaded Computing. In OOPSLA 2005 Workshop on Synchronization and Concurrency in Object-Oriented Languages (SCOOL). October 2005.
[14]
J. L. Eppinger, L. B. Mummert, and A. Z. Spector, editors. Camelot and Avalon: a distributed transaction facility. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1991.
[15]
C. Flanagan. Atomicity in multithreaded software. In Workshop on Transactional Systems, April 2005.
[16]
Free Software Foundation, GNU Classpath 0.18. http://www.gnu.org/software/classpath/, 2005.
[17]
L. Hammond, B. D. Carlstrom, V. Wong, B. Hertzberg, M. Chen, C. Kozyrakis, and K. Olukotun. Programming with transactional coherence and consistency (TCC). In ASPLOS-XI: Proceedings of the 11th international conference on Architectural support for programming languages and operating systems, pages 1--13, New York, NY, USA, October 2004. ACM Press.
[18]
L. Hammond, V. Wong, M. Chen, B. D. Carlstrom, J. D. Davis, B. Hertzberg, M. K. Prabhu, H. Wijaya, C. Kozyrakis, and K. Olukotun. Transactional memory coherence and consistency. In Proceedings of the 31st International Symposium on Computer Architecture, pages 102--113, June 2004.
[19]
T. Harris. Exceptions and side-effects in atomic blocks. In 2004 PODC Workshop on Concurrency and Synchronization in Java Programs, July 2004.
[20]
T. Harris and K. Fraser. Language support for lightweight transactions. In OOPSLA '03: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, pages 388--402. ACM Press, 2003.
[21]
T. Harris, S. Marlow, S. Peyton-Jones, and M. Herlihy. Composable memory transactions. In PPoPP '05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 48--60, New York, NY, USA, July 2005. ACM Press.
[22]
T. Harris, M. Plesko, A. Shinnar, and D. Tarditi. Optimizing memory transactions. In PLDI '06: Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, New York, NY, USA, 2006. ACM Press.
[23]
M. Herlihy, V. Luchangco, M. Moir, and I. William N. Scherer. Software transactional memory for dynamic-sized data structures. In PODC '03: Proceedings of the twenty-second annual symposium on Principles of distributed computing, pages 92--101, New York, NY, USA, July 2003. ACM Press.
[24]
M. Herlihy and J. E. B. Moss. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the 20th International Symposium on Computer Architecture, pages 289--300, 1993.
[25]
International Organization for Standardization. ISO/IEC 9075-5:1999: Information technology ---- Database languages --- SQL --- Part 5: Host Language Bindings (SQL/Bindings). International Organization for Standardization, Geneva, Switzerland, 1999.
[26]
Java Grande Forum, Java Grande Benchmark Suite. http://www.epcc.ed.ac.uk/javagrande/, 2000.
[27]
M. Jordan and M. Atkinson. Orthogonal Persistence for the Java Platform. Technical report, Sun Microsystems, October 1999.
[28]
R. Kalla, B. Sinharoy, and J. Tendler. Simultaneous multi-threading implementation in POWER5. In Conference Record of Hot Chips 15 Symposium, Stanford, CA, August 2003.
[29]
S. Kapil. UltraSparc Gemini: Dual CPU processor. In Conference Record of Hot Chips 15 Symposium, Palo Alto, CA, August 2003.
[30]
T. Knight. An architecture for mostly functional languages. In LFP '86: Proceedings of the 1986 ACM conference on LISP and functional programming, pages 105--112, New York, NY, USA, August 1986. ACM Press.
[31]
P. Kongetira, K. Aingaran, and K. Olukotun. Niagara: A 32-way multithreaded Sparc processor. IEEE MICRO Magazine, 25(2):21--29, March--April 2005.
[32]
D. Lea. package util.concurrent. http://gee.cs.oswego.edu/dl, May 2004.
[33]
B. Liskov and R. Scheifler. Guardians and actions: Linguistic support for robust, distributed programs. ACM Trans. Program. Lang. Syst., 5(3):381--404, 1983.
[34]
V. Luchangco and V. Marathe. Transaction Synchronizers. In OOPSLA 2005 Workshop on Synchronization and Concurrency in Object-Oriented Languages (SCOOL). October 2005.
[35]
A. McDonald, J. Chung, B. D. Carlstrom, C. Cao Minh, H. Chafi, C. Kozyrakis, and K. Olukotun. Architectural Semantics for Practical Transactional Memory. In Proceedings of the 33rd International Symposium on Computer Architecture, 2006.
[36]
A. McDonald, J. Chung, H. Chafi, C. Cao Minh, B. D. Carlstrom, L. Hammond, C. Kozyrakis, and K. Olukotun. Characterization of TCC on Chip-Multiprocessors. In PACT '05: Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques, pages 63--74, Washington, DC, USA, September 2005. IEEE Computer Society.
[37]
E. Moss and T. Hosking. Nested Transactional Memory: Model and Preliminary Architecture Sketches. In OOPSLA 2005 Workshop on Synchronization and Concurrency in Object-Oriented Languages (SCOOL). October 2005.
[38]
W. Pugh. The Java memory model is fatally flawed. Concurrency - Practice and Experience, 12(6):445--455, 2000.
[39]
R. Rajwar, M. Herlihy, and K. Lai. Virtualizing Transactional Memory. In ISCA '05: Proceedings of the 32nd Annual International Symposium on Computer Architecture, pages 494--505, Washington, DC, USA, June 2005. IEEE Computer Society.
[40]
M. F. Ringenburg and D. Grossman. Atomcaml: first-class atomicity via rollback. In ICFP '05: Proceedings of the tenth ACM SIGPLAN international conference on Functional programming, pages 92--104, New York, NY, USA, 2005. ACM Press.
[41]
B. Saha, A.-R. Adl-Tabatabai, R. L. Hudson, C. Cao Minh, and B. Hertzberg. A high performance software transactional memory system for a multi-core runtime. In PPoPP '06: Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming, New York, NY, USA, March 2006. ACM Press.
[42]
N. Shavit and D. Touitou. Software transactional memory. In Proceedings of the 14th Annual ACM Symposium on Principles of Distributed Computing, pages 204--213, Ottawa, Canada, August 1995.
[43]
M. Sherman. Architecture of the encina distributed transaction processing family. In SIGMOD '93: Proceedings of the 1993 ACM SIGMOD international conference on Management of data, pages 460--463, New York, NY, USA, 1993. ACM Press.
[44]
Standard Performance Evaluation Corporation, SPECjbb2000 Benchmark. http://www.spec.org/jbb2000/, 2000.
[45]
D. W. Wall. Limits of instruction-level parallelism. In ASPLOS-IV: Proceedings of the fourth international conference on Architectural support for programming languages and operating systems, pages 176--188. ACM Press, 1991.
[46]
A. Welc, S. Jagannathan, and A. L. Hosking. Transactional monitors for concurrent objects. In M. Odersky, editor, Proceedings of the European Conference on Object-Oriented Programming, volume 3086 of Lecture Notes in Computer Science, pages 519--542. Springer-Verlag, 2004.

Cited By

View all
  • (2016)Chain: tasks and channels for reliable intermittent programsACM SIGPLAN Notices10.1145/3022671.298399551:10(514-530)Online publication date: 19-Oct-2016
  • (2016)Chain: tasks and channels for reliable intermittent programsProceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2983990.2983995(514-530)Online publication date: 19-Oct-2016
  • (2016)Increasing large-scale data center capacity by statistical power controlProceedings of the Eleventh European Conference on Computer Systems10.1145/2901318.2901338(1-15)Online publication date: 18-Apr-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 41, Issue 6
Proceedings of the 2006 PLDI Conference
June 2006
426 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/1133255
Issue’s Table of Contents
  • cover image ACM Conferences
    PLDI '06: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation
    June 2006
    438 pages
    ISBN:1595933204
    DOI:10.1145/1133981
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 June 2006
Published in SIGPLAN Volume 41, Issue 6

Check for updates

Author Tags

  1. conditional synchronization
  2. java
  3. multiprocessor architecture
  4. transactional memory

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2016)Chain: tasks and channels for reliable intermittent programsACM SIGPLAN Notices10.1145/3022671.298399551:10(514-530)Online publication date: 19-Oct-2016
  • (2016)Chain: tasks and channels for reliable intermittent programsProceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2983990.2983995(514-530)Online publication date: 19-Oct-2016
  • (2016)Increasing large-scale data center capacity by statistical power controlProceedings of the Eleventh European Conference on Computer Systems10.1145/2901318.2901338(1-15)Online publication date: 18-Apr-2016
  • (2015)On Reducing False Conflicts in Distributed Transactional Data StructuresProceedings of the 16th International Conference on Distributed Computing and Networking10.1145/2684464.2684467(1-10)Online publication date: 4-Jan-2015
  • (2015)Composable Memory Transactions for Java Using a Monadic Intermediate LanguageProceedings of the 19th Brazilian Symposium on Programming Languages - Volume 932510.1007/978-3-319-24012-1_10(128-142)Online publication date: 24-Sep-2015
  • (2014)Fault Tolerant Distributed Computing Using Asynchronous Local CheckpointingProceedings of the 4th International Workshop on Programming based on Actors Agents & Decentralized Control10.1145/2687357.2687364(81-93)Online publication date: 20-Oct-2014
  • (2014)Reusable Concurrent Data TypesProceedings of the 28th European Conference on ECOOP 2014 --- Object-Oriented Programming - Volume 858610.1007/978-3-662-44202-9_8(182-206)Online publication date: 1-Aug-2014
  • (2013)On Closed Nesting and Checkpointing in Fault-Tolerant Distributed Transactional MemoryProceedings of the 2013 IEEE 27th International Symposium on Parallel and Distributed Processing10.1109/IPDPS.2013.103(41-52)Online publication date: 20-May-2013
  • (2013)ByteSTM: Virtual Machine-Level Java Software Transactional MemoryCoordination Models and Languages10.1007/978-3-642-38493-6_12(166-180)Online publication date: 2013
  • (2011)The elephant and the miceProceedings of the international conference on Supercomputing10.1145/1995896.1995948(338-347)Online publication date: 31-May-2011
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media