Skip to main content

A Performance Study of Software Prefetching for Tracing Garbage Collectors

  • Conference paper
  • 1329 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8299))

Abstract

In automatic memory management programming language, the garbage collector is an important feature which reclaims memory that is no longer referenced by the program. The tracing collector performs a transitive closure across the object reference graph. And this process may result in too many cache misses, because the traverse exhibits poor locality. Previous studies have already proposed using software prefetching to improve memory performance of garbage collector. In this work, we studied the characteristic of prefetch instructions on x86 platforms in detail, and proposed a method to control the prefetch ratios by address thresholds. The experimental results show that a further improvement and optimization is obtained by tuning the prefetch ratio. We use these results to devise some guidelines for optimizing the memory performance as well as minimizing the collection pause times.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Blackburn, S., Garner, R., et al.: The DaCapo benchmarks: Java benchmarking development and analysis. In: Intl. Conf. on Object-Oriented Programming, Systems, Languages, and Applications, pp. 169–190 (2006)

    Google Scholar 

  2. Alpern, B., Attanasio, C., Barton, J., et al.: The Jalapeno virtual machine. IBM Systems Journal 39(1), 211–221 (2000)

    Article  Google Scholar 

  3. Blackburn, S.M., Cheng, P., McKinley, K.S.: Oil and water? High performance garbage collection in Java with MMTk. In: Proceedings of the 26th International Conference on Software Engineering, pp. 137–146. ACM, New York (2004)

    Chapter  Google Scholar 

  4. Framption, D., Blackburn, S.M., Cheng, P., et al.: Demystifying magic: high-level low-level programming. In: Proceedings of the 2009 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, pp. 81–90. ACM, New York (2009)

    Chapter  Google Scholar 

  5. Garner, R., Blackburn, S.M., Frampton, D.: Effective prefetch for mark-sweep garbage collection. In: Proceedings of the 6th International Symposium on Memory Management, pp. 43–54. ACM, New York (2007)

    Google Scholar 

  6. Guo, Y., Chheda, S., Koren, I., Krishna, C.M., Moritz, C.A.: Energy-Aware Data Prefetching for General-Purpose Programs. In: Falsafi, B., VijayKumar, T.N. (eds.) PACS 2004. LNCS, vol. 3471, pp. 78–94. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  7. Guo, Y., Naser, M.B., Moritz, C.A.: PARE: a power-aware hardware data prefetching engine. In: Proceedings of the 2005 International Symposium on Low Power Electronics and Design, pp. 339–344. ACM, New York (2005)

    Google Scholar 

  8. Intel 64 and IA-32 Architectures Optimization Reference Manual, Order Number 248966-026, http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-optimization-manual.pdf

  9. Lee, J., Lakshminarayana, N.B., Kim, H., Vuduc, R.: Many-Thread Aware Prefetching Mechanisms for GPGPU Applications. In: Proceedings of the 43rd Annual IEEE/ACM International Symposium on Microarchitecture, pp. 213–224. IEEE, Los Alamitos (2010)

    Google Scholar 

  10. Lee, J., Kim, H., Vuduc, R.: When Prefetching Works, When It Doesn’t, and Why. ACM Transactions on Architecture and Code Optimization 9(1), 2:1-2:29 (2012)

    Article  Google Scholar 

  11. Marathe, J., Mueller, F.: PFetch: software prefetching exploiting temporal predictability of memory access streams. In: Proceedings of the 9th Workshop on Memory Performance: Dealing with Applications, Systems and Architecture, pp. 1–8. ACM, New York (2008)

    Chapter  Google Scholar 

  12. Paz, H., Petrank, E.: Using Prefetching to Improve Reference-Counting Garbage Collectors. In: Adsul, B., Odersky, M. (eds.) CC 2007. LNCS, vol. 4420, pp. 48–63. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  13. Cher, C., Hosking, A.L., Vijaykumar, T.N.: Software prefetching for mark-sweep garbage collection: hardware analysis and software redesign. In: Proceedings of the 11th International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 199–210. ACM, New York (2004)

    Google Scholar 

  14. Auerbach, J., Bacon, D.F., Cheng, P., et al.: Tax-and-spend: democratic scheduling for real-time garbage collection. In: Proceedings of the 8th ACM International Conference on Embedded Software, pp. 245–254 (2008)

    Google Scholar 

  15. Pizlo, F., Frampton, D., Petrank, E., Steensgaard, B.: Stopless: A real-time garbage collector for modern platforms. In: Proceedings of the 6th International Symposium on Memory Management (2007)

    Google Scholar 

  16. McGachey, P., Adl-Tabatabai, A.-R., et al.: Concurrent GC leveraging transactional memory. In: 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 217–226 (2008)

    Google Scholar 

  17. Pizlo, F., Petrank, E., Steensgaard, B.: A study of concurrent real-time garbage collectors. In: Proceedings of the 2008 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 33–44 (2008)

    Google Scholar 

  18. Kliot, G., Petrank, E., Steensgaard, B.: A lock-free, concurrent, and incremental stack scanning for garbage collectors. In: Proceedings of the 2009 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, pp. 11–20 (2009)

    Google Scholar 

  19. Siebert, F.: Concurrent, Parallel, Real-Time Garbage-Collection. In: Proceedings of the 2010 International Symposium on Memory Management, pp. 11–20 (2010)

    Google Scholar 

  20. Click, C., Tene, G., Wolf, M.: The pauseless GC algorithm. In: Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments, pp. 46–56 (2005)

    Google Scholar 

  21. Schoeberl, M., Puffitsch, W.: Non-blocking real-time garbage collection. ACM Transactions on Embedded Computing Systems (2010)

    Google Scholar 

  22. Auerbach, J., Bacon, D.F., et al.: Design and implementation of a comprehensive real-time Java virtual machine. In: Proceedings of the 7th ACM & IEEE International Conference on Embedded Software, pp. 249–258 (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wu, H., Ji, Z., Zhu, S., Chen, Z. (2013). A Performance Study of Software Prefetching for Tracing Garbage Collectors. In: Wu, C., Cohen, A. (eds) Advanced Parallel Processing Technologies. APPT 2013. Lecture Notes in Computer Science, vol 8299. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45293-2_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-45293-2_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-45292-5

  • Online ISBN: 978-3-642-45293-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics