Re: Help finding a book and some gc references

Erez Petrank <[email protected]> Wed, 15 Oct 2008 15:43:22 +0200
Newsgroups gmane.comp.programming.garbage-collection.general
Message-ID <[email protected]>
 I ran a project that concentrated on improving reference counting
algorithms and engineering for parallel platforms. You can check my
publication page (http://www.cs.technion.ac.il/~erez/papers-by-area.html)
to see the papers and some presentations.

The first paper in this project was joint with Levanoni in TOPLAS 2006
(originally OOPSLA 2001) on concurrent reference-counting for SMP [1]. It
proposes the update coalescing technique to reduce the overheads, a
low-overhead write-barrier that avoids synchronization, and the
sliding-views methodology for arguing about concurrent collectors. (You
can also find pointers to earlier work in that paper.)

An extension of the Levanoni-Petrank with generational GC and
old-generation reference counting appeared later in [2]. Independently,
the Ulterior collector [3] also used generations with reference counting
on the old generation. The Ulterior collector is not concurrent, but it
employs some cool techniques for reducing the collector's pause times
(even on a uniprocessor) while maintaining high efficiency. The
age-oriented collector [4] attempts to propose the best way to use
reference-counting generational collectors. Further work on prefetching
for reference counting appears in [5].

Cycle collection has a long history, but notably, the 2001 Bacon-Rajan
paper [6] provides a modern concurrent cycle collector. A subsequent
combination of cycle collector with the Levanoni-Petrank
reference-counting collector (plus some improved techniques) [7] provides
the state-of-the-art cycle collection.

It is worth noting that Pramod Joisha has recently written a few papers
on static analysis to aid refernce counting (e.g. [8]). That project
involved a substantial effort with non-trivial analysis, but his
collectors did not parallelize and they only used analysis on the root
pointers. A statical Analysis of pointers on the heap is even more
challenging and was left as future work.


[1] Yossi Levanoni and Erez Petrank.  An On-the-fly Reference Counting
Garbage Collector for Java. ACM Transactions on Programming Languages and
Systems, Vol. 28, No. 1, January, 2006.

[2] Hezi Azatchi and Erez Petrank. Integrating Generations with Advanced
Reference Counting Garbage Collectors.  The 12th International Conference
on Compiler Construction (CC'03), April 2003.

[3] Steven Blackburn and Katheryn McKinley. Ulterior Reference Counting:
Fast Garbage Collection without a Long Wait. (http://portal.acm.org/citation.cfm?id=949343.949336).
OOPSLA'03, October 2003 

[4] Harel Paz, Erez Petrank, and Stephen M. Blackburn.  Age-Oriented
Concurrent Garbage Collection.  14th International Conference on Compiler
Construction (CC'05), April 2005.

[5] Harel Paz and Erez Petrank. Using Prefetching to Improve
Reference-Counting Garbage Collectors. Proceedings of the 16th
International Conference on Compiler Construction (CC'07), March, 2007.

[6] David F. Bacon, V. T. Rajan: Concurrent Cycle Collection in Reference
Counted Systems. ECOOP 2001: 207-235.

[7] Harel Paz, David F. Bacon, Elliot K. Kolodner, Erez Petrank, and V.T.
Rajan.  Efficinet On-the-Fly Cycle Collection.  14th International
Conference on Compiler Construction (CC'05), April 2005.

[8] Pramod G. Joisha: Overlooking roots: a framework for making
nondeferred reference-counting garbage collection fast. ISMM 2007:
141-158

Best,

-- Erez

----------------------------------------------------------------------
Erez Petrank, Assoc. Prof.
Dept. of Computer Science, Technion - Israel Institute of Technology
Haifa 32000, Israel
Email: [email protected]
homepage: http://www.cs.technion.ac.il/~erez
Phone: +972-4-829-4942. Fax: +972-4-829-3900
----------------------------------------------------------------------