A fully concurrent garbage collector for functional programs on multicore processors

Research output: Chapter in Book/Report/Conference proceedingConference contribution

2 Citations (Scopus)

Abstract

This paper presents a concurrent garbage collection method for functional programs running on a multicore processor. It is a concurrent extension of our bitmap-marking non-moving collector with Yuasa's snapshot-at-the-beginning strategy. Our collector is unobtrusive in the sense of the Doligez-Leroy-Gonthier collector; the collector does not stop any mutator thread nor does it force them to synchronize globally. The only critical sections between a mutator and the collector are the code to enqueue/dequeue a 32 kB allocation segment to/from a global segment list and the write barrier code to push an object pointer onto the collector's stack. Most of these data structures can be implemented in standard lock-free data structures. This achieves both efficient allocation and unobtrusive collection in a multicore system. The proposed method has been implemented in SML#, a full-scale Standard ML compiler supporting multiple native threads on multicore CPUs. Our benchmark tests show a drastically short pause time with reasonably low overhead compared to the sequential bitmap-marking collector.

Original languageEnglish
Title of host publicationICFP 2016 - Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming
EditorsEijiro Sumii, Jacques Garrigue, Gabriele Keller
PublisherAssociation for Computing Machinery, Inc
Pages421-433
Number of pages13
ISBN (Print)9781450342193
DOIs
Publication statusPublished - 2016 Aug 4
Event21st ACM SIGPLAN International Conference on Functional Programming, ICFP 2016 - Nara, Japan
Duration: 2016 Sep 182016 Sep 24

Publication series

NameICFP 2016 - Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming

Other

Other21st ACM SIGPLAN International Conference on Functional Programming, ICFP 2016
CountryJapan
CityNara
Period16/9/1816/9/24

Keywords

  • Concurrent Garbage Collection
  • Functional Languages
  • Multicore Processors
  • Standard ML

ASJC Scopus subject areas

  • Software
  • Computer Science Applications
  • Computational Theory and Mathematics

Fingerprint Dive into the research topics of 'A fully concurrent garbage collector for functional programs on multicore processors'. Together they form a unique fingerprint.

  • Cite this

    Ueno, K., & Ohori, A. (2016). A fully concurrent garbage collector for functional programs on multicore processors. In E. Sumii, J. Garrigue, & G. Keller (Eds.), ICFP 2016 - Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming (pp. 421-433). (ICFP 2016 - Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming). Association for Computing Machinery, Inc. https://doi.org/10.1145/2951913.2951944