Re: Divide and conquer GC algorithms

"Jon Harrop" <[email protected]> Thu, 17 Nov 2011 23:36:42 -0000
Newsgroups gmane.comp.programming.garbage-collection.general
Message-ID <[email protected]>
As an example, consider storing the heap topology in a k-D tree indexed by
the pair (a, b) where "a" points to the source object and "b" points to the
destination object that the source refers to.

> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On
> Behalf Of Jon Harrop
> Sent: 12 November 2011 12:32
> To: [email protected]
> Subject: [gclist] Divide and conquer GC algorithms
> 
> Reading Richard's excellent book, I was surprised to observe that none of
the
> major GC algorithms seem to be hierarchical. Some algorithms like the
Train
> collector, Beltway and Immix amortize costs by grouping heap-allocated
blocks
> together but they don't seem to use trees to gradually refine the
granularity.
> 
> I've also been looking at "dynamic" graph algorithms for the first time.
> These algorithms allow a small change in the graph (add/remove one
> edge/vertex) to be converted into a small change in their output. The
concept of
> a topology tree, a data structure used in some dynamic graph algorithms,
> caught my attention because this conveys information about the topology of
a
> graph. For example, you might be able to determine quickly that a 1/4
partition
> of the heap contained pointers to another 1/4 partition but not the other
way
> around so there were no cycles spanning the two partitions. Could a GC use
a
> topology tree to do some of its work in O(log
> 
> n) time? Furthermore, what if a dynamic graph algorithm were used to
> incrementally update the GC's topology tree as the write barrier mutates
the
> topology of the heap?
> 
> Do any GC algorithms use divide-and-conquer, trees or yield complexities
> logarithmic in the number of pointers in the heap?  Can we estimate how
big a
> heap would have to be before hierarchical techniques would become
> competitively performant?
> 
> This reminds me of the debate surrounding the use of trees in file systems
as
> opposed to flat collections...
> 
> On the exact opposite end of the spectrum, has anyone tried using GPGPU to
> accelerate garbage collection, e.g. the mark phase?
> 
> --
> Dr Jon Harrop, Flying Frog Consultancy Ltd.
> http://www.ffconsultancy.com