On bounding time and space for multiprocessor garbage collection

  • Authors:
  • Guy E. Blelloch;Perry Cheng

  • Affiliations:
  • Carnegie Mellon University;IBM Research

  • Venue:
  • ACM SIGPLAN Notices - Best of PLDI 1979-1999
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Our paper described a real-time garbage collection algorithm for shared-memory multiprocessors. The work differed from previous work on multiprocessor garbage collection in that we were interested in placing hard bounds on pause times and memory usage. We felt this was important in justifying the term real-time, and for giving users a better handle on actual performance characteristics. Although the paper presented an algorithm without an implementation, and made some simplifying assumptions, we put considerable effort into making key aspects of the algorithm practical. In later work [9, 8] we implemented the ideas, and demonstrated performance characteristics that were in line with the characteristics predicted by the theory.This paper presents the first multiprocessor garbage collection algorithm with provable bounds on time and space. The algorithm is a real-time shared-memory copying colector. We prove that the algorithm requires at most 2(R(1 + 2/k) + N + 5PD) memory locations, where P is the number of processors, R is the maximum reachable space during a computation (number of locations accessible from the root set), N is the maximum number of reachable objects, D is the maximum depth of any data object, and k is a parameter specifying how many locations are copied each time a location is allocated. Furthermore we show that client threads are never stopped for more than time proportional to k non-blocking machine instructions. The bounds are guaranteed even with arbitrary length arrays. The collector only requires write-barriers (reads are unaffected by the collector), makes few assumptions about the threads that are generating the garbage, and allows them to run mostly asynchronously.