ParMarkSplit: A Parallel Mark-Split Garbage Collector Based on a Lock-Free Skip-List
2014 (English)In: / [ed] Marcos K. Aguilera, Marc Shapiro, Springer , 2014Conference paper, Published paper (Refereed)
Abstract [en]
Mark-split is a garbage collection algorithm that combines advantages of both the mark-sweep and the copying collection algorithms. In this paper, we present a parallel mark-split garbage collector (GC). Our parallel design introduces and makes use of an efficient concurrency control mechanism for handling the list of free memory intervals. This mechanism is based on a lock-free skip-list design which supports an extended set of operations. Beside basic operations, it can perform a composite one that can search and remove and also insert two elements atomically. We have implemented the parallel mark-split GC in OpenJDK’s HotSpot virtual machine. We experimentally evaluate our collector and compare it with the default concurrent mark-sweep GC in HotSpot, using the DaCapo benchmarks, on two contemporary multiprocessor systems; one has 12 Intel Nehalem cores with HyperThreading and the other has 48 AMD Bulldozer cores. The evaluation shows that our parallel mark-split keeps the characteristics of the sequential mark-split, that it performs better than the concurrent mark-sweep in applications that have low live/garbage ratio, and have live objects locating contiguously, therefore being marked consecutively. Our parallel mark-split performs significantly better than a trivial parallelization based on locks in terms of both collection time and scalability.
Place, publisher, year, edition, pages
Springer , 2014.
Series
Lecture Notes in Computer Science ; 8878
Keywords [en]
garbage collector, concurrent programming, mark-split, mark-sweep, parallel garbage collection, lock-free data structures, Parallel Computing
National Category
Computer Sciences
Research subject
Bussiness and IT
Identifiers
URN: urn:nbn:se:hb:diva-7256Local ID: 2320/14719OAI: oai:DiVA.org:hb-7256DiVA, id: diva2:887967
Conference
OPODIS 2014. The 18th International Conference on Principles of Distributed Systems, Cortina d'Ampezzo, Italy, 16-19 December, 2014
2015-12-222015-12-222018-01-10Bibliographically approved