A study of the scalability of stop-the-world garbage collectors on multicores

Lokesh Gidra, Gael Thomas, Julien Sopena, Marc Shapiro

Research output: Contribution to journalArticlepeer-review

Abstract

Large-scale multicore architectures create new challenges for garbage collectors (GCs). In particular, throughput-oriented stopthe- world algorithms demonstrate good performance with a small number of cores, but have been shown to degrade badly beyond approximately 8 cores on a 48-core with OpenJDK 7. This negative result raises the question whether the stop-the-world design has intrinsic limitations that would require a radically different approach. Our study suggests that the answer is no, and that there is no compelling scalability reason to discard the existing highly-optimised throughput-oriented GC code on contemporary hardware. This paper studies the default throughput-oriented garbage collector of OpenJDK 7, called Parallel Scavenge. We identify its bottlenecks, and show how to eliminate them using well-established parallel programming techniques. On the SPECjbb2005, SPECjvm2008 and DaCapo 9.12 benchmarks, the improved GC matches the performance of Parallel Scavenge at low core count, but scales well, up to 48 cores.

Original languageEnglish
Pages (from-to)229-239
Number of pages11
JournalACM SIGPLAN Notices
Volume48
Issue number4
DOIs
Publication statusPublished - 1 Apr 2013
Externally publishedYes

Keywords

  • Garbage collection
  • Multicore
  • NUMA

Fingerprint

Dive into the research topics of 'A study of the scalability of stop-the-world garbage collectors on multicores'. Together they form a unique fingerprint.

Cite this