Publication
X10 2012
Conference paper

Distributed garbage collection for managed X10

View publication

Abstract

X10 is a programming language that incorporates distributed processing functions. The execution model of X10 is called "APGAS", where each object belongs to a specific place (an abstraction of a shared-memory computer), but can be remotely referenced from other places using a mechanism named GlobalRef. This means that a remotely-referenced object must not be collected as garbage even if there is no local reference to it. There is an implementation of X10 named "Managed X10", which uses multiple Java virtual machines (JVMs) to run an X10 application. In a Managed X10 environment, X10 objects are represented by Java objects, and unneeded objects are collected by the GC in the JVM. Each place is implemented as an individual JVM, so distributed processing is possible by using multiple JVMs on multiple computers. However, in the early implementation of Managed X10, objects that were ever remotely referenced through GlobalRef were registered in a management table and would never be collected. Therefore, if an application uses Global-Refs periodically, its heap area is consumed by uncollectable objects and an Out Of Memory Error condition may eventually occur. To solve this problem, we developed a distributed GC for Managed X10. The core part of this GC is provided by an internal data structure called the "Globalized Object Tracker" (GOT), which is prepared for each remotely-referenced (globalized) object. GOT tracks the number of remote references to the object and handles the mapping between the object and its ID. When all remote references are removed, the distributed GC makes the object collectable by the local JVM GC. This paper first introduces the distributed execution model of X10 and the mechanism of GlobalRef, then explains how the distributed GC is implemented in Managed X10. The implementation does not modify the JVM, so it is highly portable. Through various evaluation experiments, we show that the remotely-referenced objects are correctly collected and there is almost no performance degradation in the proposed distributed GC. Copyright © 2012 ACM.

Date

23 Jul 2012

Publication

X10 2012

Authors

Topics

Share