ABSTRACT
During the last decade, software transactional memory (STM) gained wide popularity in many areas of parallel computing. In this paper, we introduce LISP-derived language equipped with automatic parallel execution and mutations based on software transactional memory. The novel idea is that we do not incorporate transactions as a language construct but rather use them as a mean of runtime environment to run each computation in a consistent memory and thus provide correct results. STM enables us to efficiently manage concurrent object updates and resolve collisions. In this paper, we describe a variant of deferred lockless STM mechanism with direct updates that enables us to use mutations with minimal costs.
- John Allen. Anatomy of LISP. McGraw-Hill, Inc., New York, NY, USA, 1978. Google ScholarDigital Library
- C. Scott Ananian and Martin Rinard. Efficient object-based software transactions. In Proceedings, Workshop on Synchronization and Concurrency in Object-Oriented Languages, San Diego, CA, Oct 2005.Google Scholar
- Keir Fraser. Practical lock-freedom. Technical report UCAM-CL-TR-579, University of Cambridge, Computer Laboratory, February 2004.Google Scholar
- Guillaume Germain. Concurrency oriented programming in termite scheme. In ERLANG '06: Proceedings of the 2006 ACM SIGPLAN workshop on Erlang, pages 20--20, New York, NY, USA, 2006. ACM. Google ScholarDigital Library
- Guerraoui, Herlihy, and Pochon. Polymorphic contention management. In DISC: International Symposium on Distributed Computing. LNCS, 2005. Google ScholarDigital Library
- Tim Harris and Keir 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, New York, NY, USA, 2003. ACM. Google ScholarDigital Library
- Tim Harris, Simon Marlow, Simon L. Peyton Jones, and Maurice Herlihy. Composable memory transactions. In Keshav Pingali, Katherine A. Yelick, and Andrew S. Grimshaw, editors, Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (10th PPOPP'2005), ACM SIGPLAN Notices, pages 48--60, Chicago, IL, USA, June 2005. Google ScholarDigital Library
- Maurice Herlihy, Victor Luchangco, Mark Moir, and William N. Scherer, III. 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, 2003. ACM. Google ScholarDigital Library
- Williams Ludwell Harrison III. The interprocedural analysis and automatic parallelization of scheme programs. Lisp and Symbolic Computation, 2(2):179--396, 1989.Google Scholar
- Guy L. Steele Jr. Common LISP the Language. Digital Press, 2nd edition, 1990. Google ScholarDigital Library
- Richard Kelsey, William Clinger, and Jonathan Rees (Editors). Revised5 Report on the Algorithmic Language Scheme. ACM SIGPLAN Notices, 33(9):26--76, 1998. Google ScholarDigital Library
- Thomas F. Knight. An architecture for mostly functional languages. In LISP and Functional Programming, pages 105--112, 1986. Google ScholarDigital Library
- Petr Krajca and Vilem Vychodil. Stack-Based Model of Implicit Parallel Execution of Functional Programs. Submitted.Google Scholar
- Petr Krajca and Vilem Vychodil. Data parallel dialect of scheme: outline of the formal model, implementation, performance. In Sung Y. Shin and Sascha Ossowski, editors, SAC, pages 1938--1939. ACM, 2009. Google ScholarDigital Library
- James Larus and Ravi Rajwar. Transactional Memory. Morgan & Claypool, 2006.Google Scholar
- Yossi Lev and Jan-Willem Maessen. Toward a safer interaction with transactional memory by tracking object visibility. In Proceedings, Workshop on Synchronization and Concurrency in Object-Oriented Languages. San Diego, CA, October 2005.Google Scholar
- Toshihiro Matsui and Satoshi Sekiguchi. Multithread Implementation of an Object-Oriented Lisp, EusLisp. In Advanced LISP Technology (Advanced Information Processing Technology), pages 59--80. Taylor & Francis, June 2002.Google Scholar
- Filip Pizlo, Marek Prochazka, Suresh Jagannathan, and Jan Vitek. Transactional lock-free objects for real-time Java. In Proceedings of the PODC Workshop on Concurrency and Synchronization in Java Programs, pages 54--62, 2004.Google Scholar
Index Terms
- Software transactional memory for implicitly parallel functional language
Recommendations
An efficient software transactional memory using commit-time invalidation
CGO '10: Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimizationTo improve the performance of transactional memory (TM), researchers have found many eager and lazy optimizations for conflict detection, the process of determining if transactions can commit. Despite these optimizations, nearly all TMs perform one ...
Safe privatization in transactional memory
PPoPP '18Transactional memory (TM) facilitates the development of concurrent applications by letting the programmer designate certain code blocks as atomic. Programmers using a TM often would like to access the same data both inside and outside transactions, ...
Safe privatization in transactional memory
PPoPP '18: Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingTransactional memory (TM) facilitates the development of concurrent applications by letting the programmer designate certain code blocks as atomic. Programmers using a TM often would like to access the same data both inside and outside transactions, ...
Comments