|Uploaded the latest beta version of SGC|
|The second release of parallel collector for multiproceessors (SGC0.2, formerly PGC) is out!|
|The first release of parallel collector for clusters (DGC-0.1b) is out!|
|1998 10/23||The first release of parallel collector for multiprocessors (PGC0.1) is out!|
|Garbage collection (GC) is one of the most important and
complex parts of the runtime system of programming languages. It
is further complicated in parallel and distributed environments.
GC is simply a must for anybody who
implements high-level programming languages and is sometimes desired even
by application programmers using languages that lack it (e.g., C/C++).
For people who want a GC for their languages or applications, the current situation is unfortunate because many collectors are so tightly integrated in a particular programming environment that they cannot simply be reused for other contexts. This is understandable because GC tends to require a tight cooperation with other components of a system, such as code generators and communication layers.
We are working to improve this situation in parallel and distributed settings.
The goal of this project is to provide parallel/distributed garbage collectors
that is usable by C/C++ application programs and can easily cooperate with
other components for parallel and distributed software (e.g., communication
library of their own). We currently offer two separate GC systems:
a parallel collector on shared-memory multiprocessors
and a parallel collector on message passing (distributed)
environment. In future, we will unify these two systems
in a single one that works on clusters of multiprocessors. Both are
based on Boehm's
Conservative GC, a garbage collection library (mainly) for uniprocessors.
We extended it to parallel and distributed environments. Thanks to the
Boehm GC, our collector can be used by C programs simply as a replacement
of the malloc/free, recognizes interior pointers, and avoids excess retention.