skip to main content
10.1145/2633301.2633305acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

A way forward in parallelising dynamic languages

Published: 28 July 2014 Publication History

Abstract

Dynamic languages became very popular in recent years. At some point, the need for concurrency arose, and many of them made the choice to use a single global interpreter lock (GIL) to synchronise the interpreter in a multithreading scenario. This choice, however, makes it impossible to actually run code in parallel.
Here we want to compare different approaches to replacing the GIL with a technology that allows parallel execution. We look at fine-grained locking, shared-nothing, and transactional memory (TM) approaches. We argue that software-based TM systems are the most promising, especially since they also enable the introduction of large, parallelisable atomic blocks as a better synchronisation mechanism in the language.

References

[1]
Dan Grossman. 2007. The transactional memory / garbage collection analogy. In Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications (OOPSLA '07).
[2]
The Jython Project, www.jython.org
[3]
The Multiprocessing Module of Python, docs.python.org/2/library/multiprocessing.html
[4]
Odaira, Rei, Jose G. Castanos, and Hisanobu Tomari. "Eliminating global interpreter locks in Ruby through hardware transactional memory." Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming. ACM, 2014.
[5]
Jons-Tobias Wamhoff, Christof Fetzer, Pascal Felber, Etienne Rivière, and Gilles Muller. 2013. FastLane: improving performance of software transactional memory for low thread counts. SIGPLAN Not. 48, 8 (February 2013), 113--122.
[6]
Aleksandar Dragojević, Pascal Felber, Vincent Gramoli, and Rachid Guerraoui. 2011. Why STM can be more than a research toy. Commun. ACM 54, 4 (April 2011), 70--77.
[7]
Calin Cascaval, Colin Blundell, Maged Michael, Harold W. Cain, Peng Wu, Stefanie Chiras, and Siddhartha Chatterjee. 2008. Software transactional memory: why is it only a research toy?. Commun. ACM 51, 11 (November 2008), 40--46.
[8]
Nicholas Riley and Craig Zilles. 2006. Hardware transactional memory support for lightweight dynamic language evolution. In Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications (OOPSLA '06). ACM, New York, NY, USA
[9]
Fuad Tabba. 2010. Adding concurrency in python using a commercial processor's hardware transactional memory support. SIGARCH Comput. Archit. News 38, 5 (April 2010)
[10]
Pascal Felber and Torvald Riegel and Christof Fetzer and Martin Süßkraut and Ulrich Müller and Heiko Sturzrehm. 2007. Transactifying applications using an open compiler framework. TRANSACT, August (2007): 4--6.
[11]
Bill McCloskey, Feng Zhou, David Gay, and Eric Brewer. 2006. Autolocker: synchronization inference for atomic sections. In Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL '06). ACM, New York, NY, USA
[12]
Luke Dalessandro, Dave Dice, Michael Scott, Nir Shavit, and Michael Spear. 2010. Transactional mutex locks. In Proceedings of the 16th international Euro-Par conference on Parallel processing: Part II (Euro-Par'10), Pasqua D'Ambra, Mario Guarracino, and Domenico Talia (Eds.). Springer-Verlag, Berlin, Heidelberg, 2--13.
[13]
Lamport, Leslie. "How to make a multiprocessor computer that correctly executes multiprocess programs." Computers, IEEE Transactions on 100.9 (1979): 690--691.
[14]
Victor Pankratius and Ali-Reza Adl-Tabatabai. 2011. A study of transactional memory vs. locks in practice. In Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures (SPAA '11). ACM, New York, NY, USA
[15]
Christopher J. Rossbach, Owen S. Hofmann, and Emmett Witchel. 2010. Is transactional programming actually easier?. SIGPLAN Not. 45, 5 (January 2010), 47--56.
[16]
Tim Harris and Keir Fraser. 2003. Language support for lightweight transactions. In Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications (OOPSLA '03).
[17]
Tim Harris, Simon Marlow, Simon Peyton-Jones, and Maurice Herlihy. 2005. Composable memory transactions. In Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming (PPoPP '05).
[18]
Shan Lu, Soyeon Park, Eunsoo Seo, and Yuanyuan Zhou. 2008. Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. SIGARCH Comput. Archit. News 36, 1 (March 2008), 329--339.
[19]
Leis, Viktor, Alfons Kemper, and Thomas Neumann. "Exploiting Hardware Transactional Memory in Main-Memory Databases." Proc. of ICDE. 2014.
[20]
Kenneth Russell and David Detlefs. 2006. Eliminating synchronization-related atomic operations with biased locking and bulk rebiasing. In Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications (OOPSLA '06).

Cited By

View all
  • (2024)Multi-threaded OpenSmalltalk VM: Choosing a Strategy for ParallelizationCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660846(87-93)Online publication date: 11-Mar-2024
  • (2023)IRIS: Interference and Resource Aware Predictive Orchestration for ML Inference Serving2023 IEEE 16th International Conference on Cloud Computing (CLOUD)10.1109/CLOUD60044.2023.00021(1-12)Online publication date: Jul-2023
  • (2015)Columnar objects: improving the performance of analytical applications2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!)10.1145/2814228.2814230(197-210)Online publication date: 21-Oct-2015

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ICOOOLPS '14: Proceedings of the 9th International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems PLE
July 2014
42 pages
ISBN:9781450329149
DOI:10.1145/2633301
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]

Sponsors

  • Uppsala University, Department of Information Science: Uppsala University, Department of Information Science
  • AITO: Assoc Internationale por les Technologies Objects

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 28 July 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dynamic languages
  2. global interpreter lock
  3. parallelism
  4. transactional memory

Qualifiers

  • Research-article

Conference

ECOOP '14
Sponsor:
  • Uppsala University, Department of Information Science
  • AITO

Acceptance Rates

Overall Acceptance Rate 11 of 14 submissions, 79%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)1
Reflects downloads up to 23 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Multi-threaded OpenSmalltalk VM: Choosing a Strategy for ParallelizationCompanion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming10.1145/3660829.3660846(87-93)Online publication date: 11-Mar-2024
  • (2023)IRIS: Interference and Resource Aware Predictive Orchestration for ML Inference Serving2023 IEEE 16th International Conference on Cloud Computing (CLOUD)10.1109/CLOUD60044.2023.00021(1-12)Online publication date: Jul-2023
  • (2015)Columnar objects: improving the performance of analytical applications2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!)10.1145/2814228.2814230(197-210)Online publication date: 21-Oct-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media