skip to main content
10.1145/378795.378823acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

A parallel, real-time garbage collector

Authors Info & Claims
Published:01 May 2001Publication History

ABSTRACT

We describe a parallel, real-time garbage collector and present experimental results that demonstrate good scalability and good real-time bounds. The collector is designed for shared-memory multiprocessors and is based on an earlier collector algorithm [2], which provided fixed bounds on the time any thread must pause for collection. However, since our earlier algorithm was designed for simple analysis, it had some impractical features. This paper presents the extensions necessary for a practical implementation: reducing excessive interleaving, handling stacks and global variables, reducing double allocation, and special treatment of large and small objects. An implementation based on the modified algorithm is evaluated on a set of 15 SML benchmarks on a Sun Enterprise 10000, a 64-way UltraSparc-II multiprocessor. To the best of our knowledge, this is the first implementation of a parallel, real-time garbage collector.

The average collector speedup is 7.5 at 8 processors and 17.7 at 32 processors. Maximum pause times range from 3 ms to 5 ms. In contrast, a non-incremental collector (whether generational or not) has maximum pause times from 10 ms to 650 ms. Compared to a non-parallel, stop-copy collector, parallelism has a 39% overhead, while real-time behavior adds an additional 12% overhead. Since the collector takes about 15% of total execution time, these features have an overall time costs of 6% and 2%.

References

  1. 1.Henry G. Baker. List processing in real-time on a serial computer. Communications of the ACM, 21(4):280-94, 1978. Also AI Laboratory Working Paper 139, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.Guy E. Blelloch and Perry Cheng. On bounding time and space for multiprocessor garbage collection. In Proc. ACM SIGPLAN Conference onProgramming Languages Design and Implementation, ACM SIGPLAN Notices, pages 104-117, Atlanta, May 99. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.Guy E. Blelloch, Perry Cheng, and Phil Gibbons. Room synchronizations. In ACM Symposium on Parallel Algorithms and Architecture. ACM Press, July 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.C. J. Cheney. A non-recursive list compacting algorithm. Communications of the ACM, 13(11):677-8, November 1970. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.Perry Cheng. Scalable Real-time Parallel Garbage Collection for Symmetric Multiprocessors. PhD thesis, Carnegie Mellon University, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.Perry Cheng, Robert Harper, and Peter Lee. Generational stack collection and profile-driven pretenuring. In Proc. ACM SIGPLAN Conference on Programming Languages Design and Implementation, ACM SIGPLAN Notices, Montreal, June 1998. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.Edsgar W. Dijkstra, Leslie Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: An exercise in cooperation. In Lecture Notes in Computer Science, No. 46. Springer-Verlag, New York, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.Edsgar W. Dijkstra, Leslie Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM, 21(11):965-975, November 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.Damien Doligez and Georges Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In Proc. ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices. ACM Press, January 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.Damien Doligez and Xavier Leroy. A concurrent generational garbage collector for a multi-threaded implementation of ML. In Proc. ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices, pages 113-123. ACM Press, January 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.Tamar Domani, Elliot Kolodner, and Erez Petrank. A generational on-the-fly garbage collector for Java. In Proc. ACM SIGPLAN Conference onProgramming Languages Design and Implementation, pages 274-284, May 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.Toshio Endo. A scalable mark-sweep garbage collector on large-scale shared-memory machines. Master's thesis, University ofTokyo, February 1998.Google ScholarGoogle Scholar
  13. 13.Steven L. Engelstad and James E. Vandendorpe. Automatic storage management for systems with real time constraints. In Paul R. Wilson and Barry Hayes, editors, OOPSLA/ECOOP '91 Workshop on Garbage Collection in Object-Oriented Systems, Addendum to OOPSLA'91 Proceedings, October 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.Robert R. Fenichel and Jerome C. Yochelson. A Lisp garbage collector for virtual memory computer systems. Communications of the ACM, 12(11):611-612, November 1969. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.Christine Flood, Dave Detlefs, Nir Shavit, and Catherine Zhang. Parallel garbage collection for shared memory multiprocessors. In Proc. USENIX JVM Conference, April 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.Seth Goldstein. Lazy Threads: Compiler and Runtime Structures for Fine-Grained Parallel Programming. PhD thesis, University of California at Berkeley, Fall 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.A. Gottlieb, B. D. Lubachevsky, and L. Rudolph. Basic techniques for the efficient coordination of very large numbers of cooperating sequqnetial processors. ACM Trans. on Programming Languages and Systems, 5(2):164-189, April 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.Robert H. Halstead. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, 7(4):501-538, October 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.Maurice Herlihy and J. Eliot B Moss. Lock-free garbage collection for multiprocessors. IEEE Transactions on Parallel and Distributed Systems, 3(3), May 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.Martin Larose and Marc Feeley. A compacting incremental collector and its performance in a production quality compiler. In Richard Jones, editor, Proc. International Symp. on Memory Management, volume 34(3) of ACM SIGPLAN Notices, pages 1-9, Vancouver, October 1998. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.John McCarthy. Recursive functions of symbolic expressions and their computation by machine. Communications of the ACM, 3:184-195, 1960. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.Scott M. Nettles and James W. O'Toole. Real-time replication-based garbage collection. In Proc. ACM SIGPLAN Conference onProgramming Languages Design and Implementation, volume 28(6) of ACM SIGPLAN Notices. ACM Press. June 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.Guy L. Steele. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495-508, September 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.Tarditi, Morrisett, Cheng, Stone, Harper, and Lee. TIL: A type-directed optimizing compiler for ML. In Proc. ACM SIGPLAN Conference onProgramming Languages Design and Implementation, pages 181-192, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.David M. Ungar and David A. Patterson. Berkeley Smalltalk: Who knows where the time goes? In Glenn Krasner, editor, Smalltalk-80: Bits of History, Words of Advice, pages 189-206. Addison-Wesley, 1983.Google ScholarGoogle Scholar

Index Terms

  1. A parallel, real-time garbage collector

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image ACM Conferences
                PLDI '01: Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
                June 2001
                331 pages
                ISBN:1581134142
                DOI:10.1145/378795

                Copyright © 2001 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 May 2001

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • Article

                Acceptance Rates

                PLDI '01 Paper Acceptance Rate30of144submissions,21%Overall Acceptance Rate406of2,067submissions,20%

                Upcoming Conference

                PLDI '24

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader