skip to main content
research-article
Public Access

Exploiting FIFO Scheduler to Improve Parallel Garbage Collection Performance

Authors Info & Claims
Published:25 March 2016Publication History
Skip Abstract Section

Abstract

Recent studies have found that parallel garbage collection performs worse with more CPUs and more collector threads. As part of this work, we further investigate this enomenon and find that poor scalability is worst in highly scalable Java applications. Our investigation to find the causes clearly reveals that efficient multi-threading in an application can prolong the average object lifespan, which results in less effective garbage collection. We also find that prolonging lifespan is the direct result of Linux's Completely Fair Scheduler due to its round-robin like behavior that can increase the heap contention between the application threads. Instead, if we use pseudo first-in-first-out to schedule application threads in large multicore systems, the garbage collection scalability is significantly improved while the time spent in garbage collection is reduced by as much as 21%. The average execution time of the 24 Java applications used in our study is also reduced by 11%. Based on this observation, we propose two approaches to optimally select scheduling policies based on application scalability profile. Our first approach uses the profile information from one execution to tune the subsequent executions. Our second approach dynamically collects profile information and performs policy selection during execution.

References

  1. Memory Management in the Java HotSpot Virtual Machine. http://www.oracle. com/technetwork/java/javase /memorymanagement-whitepaper -150215.pdf, 2006.Google ScholarGoogle Scholar
  2. Completely Fair Scheduler in Linux. https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt, 2015.Google ScholarGoogle Scholar
  3. S. M. Blackburn, P. Cheng, and K. S. McKinley. Myths and Realities: The performance Impact of Garbage Collection. ACM SIGMETRICS Performance Evaluation Review, 32(1):25--36, 2004.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khang, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, et al. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In ACM Sigplan Notices, volume 41, pages 169--190. ACM, 2006.Google ScholarGoogle Scholar
  5. K.-Y. Chen, J. M. Chang, and T.-W. Hou. Multithreading in Java: Performance and Scalability on Multicore Systems. Computers, IEEE Transactions on, 60(11):1521--1534, 2011.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. K. Du Bois, J. B. Sartor, S. Eyerman, and L. Eeckhout. Bottle Gras: Visualizing Scalability Bottlenecks in Multi-threaded Applications. In ACM SIGPLAN Notices, volume 48, pages 355--372. ACM, 2013.Google ScholarGoogle Scholar
  7. H. Esmaeilzadeh, T. Cao, Y. Xi, S. M. Blackburn, and K. S. McKinley. Looking Back on the Language and Hardware Revolutions: Measured Power, Performance, and Scaling. In ACM SIGARCH Computer Architecture News, volume 39, pages 319--332. ACM, 2011.Google ScholarGoogle Scholar
  8. L. Gidra, G. Thomas, J. Sopena, and M. Shapiro. Assessing the Scalability of Garbage Collectors on Many Cores. In Proceedings of the 6th Workshop on Programming Languages and Operating Systems, page 7. ACM, 2011.Google ScholarGoogle Scholar
  9. L. Gidra, G. Thomas, J. Sopena, M. Shapiro, et al. A Study of the Scalability of Stop-the-world Garbage Collectors on Multicores. In ASPLOS 13-Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems, pages 229--240, 2013.Google ScholarGoogle Scholar
  10. L. Gidra, G. Thomas, J. Sopena, M. Shapiro, and N. Nguyen. NumaGiC: a Garbage Collector for Big Data on Big NUMA Machines. In ASPLOS 15-Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems, 2015.Google ScholarGoogle Scholar
  11. M. Hertz, S. M. Blackburn, J. E. B. Moss, K. S. McKinley, and D. Stefanović. Error-Free Garbage Collection Traces: How to Cheat and Not Get Caught. In Proceedings of the 2002 ACM International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS), pages 140--151, Marina Del Rey, California, 2002.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. W. Huang, J. Lin, Z. Zhang, and J. M. Chang. Performance Characterization of Java Applications on SMT Processors. In Performance Analysis of Systems and Software, 2005. ISPASS 2005. IEEE International Symposium on, pages 102--111. IEEE, 2005.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. R. Jones and R. Lins. Garbage Collection: Algorithms for automatic Dynamic Memory Management. John Wiley and Sons, 1998.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. T. Kalibera, M. Mole, R. Jones, and J. Vitek. A Black-box Approach to Understanding Concurrency in DaCapo. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '12, pages 335--354, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. C.-T. D. Lo, W. Srisa-an, and J. M. Chang. A Quantitative Simulator for Dynamic Memory Managers. In Performance Analysis of Systems and Software, 2000. ISPASS. 2000 IEEE International Symposium on, pages 64--69. IEEE, 2000.Google ScholarGoogle Scholar
  16. M. K. McKusick, G. V. Neville-Neil, and R. N. Watson. The design and implementation of the FreeBSD operating system. Pearson Education, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Qian, D. Li, W. Srisa-an, H. Jiang, and S. Seth. Factors Affecting Scalability of Multithreaded Java Applications on Manycore System. In 2015 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), pages 167--168. IEEE, 2015.Google ScholarGoogle Scholar
  18. J. Qian, W. Srisa-an, D. Li, H. Jiang, and S. Seth. SmartStealing: Analysis and Optimization of Work Stealing in Parallel Garbage Collection for Java VM. In Proceedings of the 12th International Conference on Principles and Practice of Programming in Java, pages 170--181. ACM, 2015.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. B. Sartor and L. Eeckhout. Exploring Multi-threaded Java Application Performance on Multicore Hardware. In ACM SIGPLAN Notices, volume 47, pages 281--296. ACM, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. Shahriyar, S. M. Blackburn, and K. S. McKinley. Fast Conservative Garbage Collection. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications, pages 121--139. ACM, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. J. SPEC. Client2008 Suite. URL: https://www. spec.org/ jvm2008/, 2008.Google ScholarGoogle Scholar
  22. D. Stefanović, M. Hertz, S. M. Blackburn, K. S. McKinley, and J. E. B. Moss. Older-First Garbage Collection in Practice: Evaluation in a Java Virtual Machine. SIGPLAN Notices, 38(2 supplement):25--36, 2003.Google ScholarGoogle Scholar
  23. D. Stefanović, K. S. McKinley, and J. E. B. Moss. Age-Based Garbage Collection. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 370--381, Denver, Colorado, United States, November 1999.Google ScholarGoogle Scholar
  24. F. Xian, W. Srisa-an, C. Jia, and H. Jiang. AS-GC: An Efficient Generational Garbage Gollector for Java Application Servers. In ECOOP 2007--Object-Oriented Programming, pages 126--150. Springer, 2007.Google ScholarGoogle Scholar
  25. F. Xian, W. Srisa-an, and H. Jiang. Allocation-ase Aware Thread Scheduling Policies to Improve Garbage Collection Performance. In Proceedings of the 6th international symposium on Memory management, pages 79--90. ACM, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. F. Xian, W. Srisa-an, and H. Jiang. Microase: An Approach to Proactively Invoking Garbage Collection for Improved Performance. In ACM SIGPLAN Notices, volume 42, pages 77--96. ACM, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. F. Xian, W. Srisa-an, and H. Jiang. Contention-aware Scheduler: Unlocking Execution Parallelism in Multithreaded Java Programs. In ACM Sigplan Notices, volume 43, pages 163--180. ACM, 2008.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Exploiting FIFO Scheduler to Improve Parallel Garbage Collection Performance

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

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!