Efficient and thread-safe objects for dynamically-typed languages

Benoit Daloze, Stefan Marr, Daniele Bonetta, Hanspeter Mössenböck

Research output: Chapter in Book / Report / Conference proceedingConference contributionAcademicpeer-review

Abstract

We are in the multi-core era. Dynamically-typed languages are in widespread use, but their support for multithreading still lags behind. One of the reasons is that the sophisticated techniques they use to efficiently represent their dynamic object models are often unsafe in multithreaded environments. This paper defines safety requirements for dynamic object models in multithreaded environments. Based on these requirements, a language-agnostic and thread-safe object model is designed that maintains the efficiency of sequential approaches. This is achieved by ensuring that field reads do not require synchronization and field updates only need to synchronize on objects shared between threads. Basing our work on JRuby+Truffle, we show that our safe object model has zero overhead on peak performance for thread-local objects and only 3% average overhead on parallel benchmarks where field updates require synchronization. Thus, it can be a foundation for safe and efficient multithreaded VMs for a wide range of dynamic languages.
Original languageEnglish
Title of host publicationOOPSLA 2016 - Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
EditorsE. Visser, Y. Smaragdakis
PublisherAssociation for Computing Machinery
Pages642-659
ISBN (Electronic)9781450344449
DOIs
Publication statusPublished - 19 Oct 2016
Externally publishedYes
Event2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2016 - Amsterdam, Netherlands
Duration: 31 Oct 20161 Nov 2016

Conference

Conference2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2016
Country/TerritoryNetherlands
CityAmsterdam
Period31/10/161/11/16

Fingerprint

Dive into the research topics of 'Efficient and thread-safe objects for dynamically-typed languages'. Together they form a unique fingerprint.

Cite this