skip to main content
research-article

Tracing garbage collection on highly parallel platforms

Published:05 June 2010Publication History
Skip Abstract Section

Abstract

The pervasiveness of multiprocessor and multicore hardware and the rising level of available parallelism are radically changing the computing landscape. Can software deal with tomorrow's potential higher parallelism? In this paper we study this issue from the garbage collection perspective. In particular, we investigate the scalability of parallel heap tracing, which stands at the core of the garbage collection activity. Heap shapes can be sequential in nature, and prevent the collector from scaling the trace. We start by proposing the idealized trace utilization as a scalability measure for evaluating the scalability of a given heap shape. We then examine standard Java benchmarks and evaluate the existence of non-scalable object-graph shapes in their execution. Next, we propose and implement a prototype of garbage collection techniques that attempt to ameliorate the object-graph shape problem. Finally, we measure and report their efficacy.

References

  1. Spec: The standard performance evaluation corporation. http://www.spec.org.Google ScholarGoogle Scholar
  2. Bowen Alpern, Dick Attanasio, John J. Barton, M. G. Burke, Perry Cheng, J.-D. Choi, Anthony Cocchi, Stephen J. Fink, David Grove, Michael Hind, Susan Flynn Hummel, D. Lieber, V. Litvinov, Mark Mergen, Ton Ngo, J. R. Russell, Vivek Sarkar, Manuel J. Serrano, Janice Shepherd, S. Smith, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeño virtual machine. IBM Systems Journal, 39(1), February 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Hezi Azatchi, Yossi Levanoni, Harel Paz, and Erez Petrank. An on-the-fly mark and sweep garbage collector based on sliding view. In OOPSLA, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. David F. Bacon, Clement R. Attanasio, Han Bok Lee, V. T. Rajan, and Stephen E. Smith. Java without the coffee breaks: A nonintrusive multiprocessor garbage collector. In PLDI 2001 {27}, pages 92--103. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. David F. Bacon, Perry Cheng, and V.T. Rajan. A real-time garbage collector with low overhead and consistent utilization. In Conference Record of the Thirtieth Annual ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices 38(1), New Orleans, LA, USA, January 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Katherine Barabash, Ori Ben-Yitzhak, Irit Goft, Elliot K. Kolodner, Victor Leikehman, Yoav Ossia, Avi Owshanko, and Erez Petrank. A parallel, incremental, mostly concurrent garbage collector for servers. ACM Transactions on Programming Languages and Systems, 27(6):1097--1146, November 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Stephen Blackburn, Robin Garner, Kathryn S. McKinley, Amer Diwan, Samuel Z. Guyer, Antony Hosking, J. Eliot B. Moss, and Darko Stefanović. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Stephen M. Blackburn, Perry Cheng, and Kathryn S. McKinley. Oil and water? High performance garbage collection in Java with MMTk. In Proceedings of the 26th International Conference on Software Engineering, pages 137--146, Edinburgh, May 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Hans-Juergen Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. ACM SIGPLAN Notices, 26(6):157--164, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Craig Chambers and Antony L. Hosking, editors. Proceedings of the Second International Symposium on Memory Management, ACM SIGPLAN Notices 36(1), Minneapolis, MN, October 2000. Google ScholarGoogle Scholar
  11. Perry Cheng and Guy Blelloch. A parallel, real-time garbage collector. In PLDI 2001 {27}, pages 125--136. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Cliff Click. Private communication.Google ScholarGoogle Scholar
  13. Cliff Click, Gil Tene, and MichaelWolf. The Pauseless GC algorithm. In Michael Hind and Jan Vitek, editors, Proceedings of the First ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, pages 46--56, Chicago, IL, USA, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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
  15. Damien Doligez and Georges Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In Conference Record of the Twenty-First Annual ACM Symposium on Principles of Programming Languages, Portland, OR, USA, January 1994. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Damien Doligez and Xavier Leroy. A concurrent generational garbage collector for a multi-threaded implementation of ML. In Conference Record of the Twentieth Annual ACM Symposium on Principles of Programming Languages, pages 113--123, Charleston, SC, USA, January 1993. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Tamar Domani, Elliot K. Kolodner, Ethan Lewis, Elliot E. Salant, Katherine Barabash, Itai Lahan, Erez Petrank, Igor Yanover, and Yossi Levanoni. Implementing an on-the-fly garbage collector for Java. In Chambers and Hosking {10}, pages 155--166.Google ScholarGoogle Scholar
  18. Tamar Domani, Elliot K. Kolodner, and Erez Petrank. A generational on-the-fly garbage collector for Java. In PLDI, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Toshio Endo, Kenjiro Taura, and Akinori Yonezawa. A scalable marksweep garbage collector on large-scale shared-memory machines. In Proceedings of High Performance Computing and Networking (SC'97), 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Toshio Endo, Kenjiro Taura, and Akinori Yonezawa. Predicting scalability of parallel garbage collectors on shared memory multiprocessors. In IPDPS '01: Proceedings of the 15th International Parallel & Distributed Processing Symposium, page 43, Washington, DC, USA, 2001. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Toshio Endo, Kenjiro Taura, and Akinori Yonezawa. Reducing pause time of conservative collectors. In Hans-J. Boehm and David Detlefs, editors, Proceedings of the Third International Symposium on Memory Management (June, 2002), ACM SIGPLAN Notices 38(2 supplement), pages 12--24, Berlin, Germany, February 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Christine Flood, Dave Detlefs, Nir Shavit, and Catherine Zhang. Parallel garbage collection for shared memory multiprocessors. In Proceedings of the First Java Virtual Machine Research and Technology Symposium, Monterey, CA, USA, April 2001. USENIX. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Richard L. Hudson and J. Eliot B. Moss. Sapphire: Copying GC without stopping the world. In Joint ACM Java Grande -- ISCOPE 2001 Conference, Stanford University, CA, June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Richard E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, Chichester, July 1996. With a chapter on Distributed Garbage Collection by R. Lins.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Yossi Levanoni and Erez Petrank. An on-the-fly reference counting garbage collector for Java. In OOPSLA, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Filip Pizlo, Erez Petrank, and Bjarne Steensgaard. A study of concurrent real-time garbage collectors. In PLDI, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, ACM SIGPLAN Notices 36(5), Snowbird, UT, USA, June 2001.Google ScholarGoogle Scholar
  28. Tony Printezis and David Detlefs. A generational mostly-concurrent garbage collector. In Chambers and Hosking {10}, pages 143--154.Google ScholarGoogle Scholar
  29. Yefim Shuf, Manish Gupta, Hubertus Franke, Andrew Appel, and Jaswinder Pal Singh. Creating and preserving locality of Java applications at allocation and garbage collection times. In OOPSLA, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Fridtjof Siebert. Limits of parallel marking collection. In Richard Jones and Steve Blackburn, editors, Proceedings of the Seventh International Symposium on Memory Management, pages 21--29, Tucson, AZ, USA, June 2008. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Guy L. Steele. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495--508, September 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Guy L. Steele. Corrigendum: Multiprocessing compactifying garbage collection. Communications of the ACM, 19(6):354, June 1976.Google ScholarGoogle Scholar
  33. Herb Sutter. The free lunch is over: A fundamental turn toward concurrency in software. http://www.gotw.ca/publications/concurrency-ddj.htm, March 2005.Google ScholarGoogle Scholar
  34. Ming Wu and Xiao-Feng Li. Task-pushing: a scalable parallel GC marking algorithm without synchronization operations. In IEEE International Parallel and Distribution Processing Symposium (IPDPS) 2007, Long Beach, CA, March 2007.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Tracing garbage collection on highly parallel platforms

            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

            Full Access

            • Published in

              cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 45, Issue 8
              ISMM '10
              August 2010
              129 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/1837855
              Issue’s Table of Contents
              • cover image ACM Conferences
                ISMM '10: Proceedings of the 2010 international symposium on Memory management
                June 2010
                140 pages
                ISBN:9781450300544
                DOI:10.1145/1806651
                • General Chair:
                • Jan Vitek,
                • Program Chair:
                • Doug Lea

              Copyright © 2010 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 5 June 2010

              Check for updates

              Qualifiers

              • research-article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!