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.
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- The Broadcom BCM1250 Multiprocessor. Technical report, Broadcom Corporation, April 2002.Google Scholar
- M. Campione, K. Walrath, and A. Huml. The Java Tutorial. Addison-Wesley Professional, third edition, January 2000.Google Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- Cray. Chapel Specification. February 2005.Google Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- C. Flanagan. Atomicity in multithreaded software. In Workshop on Transactional Systems, April 2005.Google Scholar
- Free Software Foundation, GNU Classpath 0.18. http://www.gnu.org/software/classpath/, 2005.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- T. Harris. Exceptions and side-effects in atomic blocks. In 2004 PODC Workshop on Concurrency and Synchronization in Java Programs, July 2004.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- Java Grande Forum, Java Grande Benchmark Suite. http://www.epcc.ed.ac.uk/javagrande/, 2000.Google Scholar
- M. Jordan and M. Atkinson. Orthogonal Persistence for the Java Platform. Technical report, Sun Microsystems, October 1999. Google Scholar
Digital Library
- 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 Scholar
- S. Kapil. UltraSparc Gemini: Dual CPU processor. In Conference Record of Hot Chips 15 Symposium, Palo Alto, CA, August 2003.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- D. Lea. package util.concurrent. http://gee.cs.oswego.edu/dl, May 2004.Google Scholar
- 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 Scholar
Digital Library
- V. Luchangco and V. Marathe. Transaction Synchronizers. In OOPSLA 2005 Workshop on Synchronization and Concurrency in Object-Oriented Languages (SCOOL). October 2005.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- W. Pugh. The Java memory model is fatally flawed. Concurrency - Practice and Experience, 12(6):445--455, 2000.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Standard Performance Evaluation Corporation, SPECjbb2000 Benchmark. http://www.spec.org/jbb2000/, 2000.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Index Terms
The Atomos transactional programming language
Recommendations
The Atomos transactional programming language
PLDI '06: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and ImplementationAtomos 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 collection classes
PPoPP '07: Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programmingWhile parallel programmers find it easier to reason about large atomic regions, the conventional mutual exclusion-based primitives for synchronization force them to interleave many small operations to achieve performance. Transactional memory promises ...
Unbounded page-based transactional memory
Proceedings of the 2006 ASPLOS ConferenceExploiting thread level parallelism is paramount in the multicore era. Transactions enable programmers to expose such parallelism by greatly simplifying the multi-threaded programming model. Virtualized transactions (unbounded in space and time) are ...







Comments