skip to main content
article

The Atomos transactional programming language

Published:11 June 2006Publication History
Skip Abstract Section

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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. The Broadcom BCM1250 Multiprocessor. Technical report, Broadcom Corporation, April 2002.Google ScholarGoogle Scholar
  9. M. Campione, K. Walrath, and A. Huml. The Java Tutorial. Addison-Wesley Professional, third edition, January 2000.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Cray. Chapel Specification. February 2005.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. C. Flanagan. Atomicity in multithreaded software. In Workshop on Transactional Systems, April 2005.Google ScholarGoogle Scholar
  16. Free Software Foundation, GNU Classpath 0.18. http://www.gnu.org/software/classpath/, 2005.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. T. Harris. Exceptions and side-effects in atomic blocks. In 2004 PODC Workshop on Concurrency and Synchronization in Java Programs, July 2004.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  26. Java Grande Forum, Java Grande Benchmark Suite. http://www.epcc.ed.ac.uk/javagrande/, 2000.Google ScholarGoogle Scholar
  27. M. Jordan and M. Atkinson. Orthogonal Persistence for the Java Platform. Technical report, Sun Microsystems, October 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  29. S. Kapil. UltraSparc Gemini: Dual CPU processor. In Conference Record of Hot Chips 15 Symposium, Palo Alto, CA, August 2003.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. D. Lea. package util.concurrent. http://gee.cs.oswego.edu/dl, May 2004.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. V. Luchangco and V. Marathe. Transaction Synchronizers. In OOPSLA 2005 Workshop on Synchronization and Concurrency in Object-Oriented Languages (SCOOL). October 2005.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  38. W. Pugh. The Java memory model is fatally flawed. Concurrency - Practice and Experience, 12(6):445--455, 2000.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Standard Performance Evaluation Corporation, SPECjbb2000 Benchmark. http://www.spec.org/jbb2000/, 2000.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar

Index Terms

  1. The Atomos transactional programming language

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • 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

            Copyright © 2006 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 11 June 2006

            Check for updates

            Qualifiers

            • article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!