skip to main content
10.1145/1774088.1774536acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Software transactional memory for implicitly parallel functional language

Published:22 March 2010Publication History

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.

References

  1. John Allen. Anatomy of LISP. McGraw-Hill, Inc., New York, NY, USA, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle Scholar
  3. Keir Fraser. Practical lock-freedom. Technical report UCAM-CL-TR-579, University of Cambridge, Computer Laboratory, February 2004.Google ScholarGoogle Scholar
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. Guerraoui, Herlihy, and Pochon. Polymorphic contention management. In DISC: International Symposium on Distributed Computing. LNCS, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. Williams Ludwell Harrison III. The interprocedural analysis and automatic parallelization of scheme programs. Lisp and Symbolic Computation, 2(2):179--396, 1989.Google ScholarGoogle Scholar
  10. Guy L. Steele Jr. Common LISP the Language. Digital Press, 2nd edition, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Richard Kelsey, William Clinger, and Jonathan Rees (Editors). Revised5 Report on the Algorithmic Language Scheme. ACM SIGPLAN Notices, 33(9):26--76, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Thomas F. Knight. An architecture for mostly functional languages. In LISP and Functional Programming, pages 105--112, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Petr Krajca and Vilem Vychodil. Stack-Based Model of Implicit Parallel Execution of Functional Programs. Submitted.Google ScholarGoogle Scholar
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. James Larus and Ravi Rajwar. Transactional Memory. Morgan & Claypool, 2006.Google ScholarGoogle Scholar
  16. 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 ScholarGoogle Scholar
  17. 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 ScholarGoogle Scholar
  18. 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 ScholarGoogle Scholar

Index Terms

  1. Software transactional memory for implicitly parallel functional 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
            • Published in

              cover image ACM Conferences
              SAC '10: Proceedings of the 2010 ACM Symposium on Applied Computing
              March 2010
              2712 pages
              ISBN:9781605586397
              DOI:10.1145/1774088

              Copyright © 2010 ACM

              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: 22 March 2010

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              SAC '10 Paper Acceptance Rate364of1,353submissions,27%Overall Acceptance Rate1,650of6,669submissions,25%

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader