SmartStealing: Analysis and Optimization of Work Stealing in Parallel Garbage Collection for Java VM

Junjie Qian, W. Srisa-an, Du Li, Hong Jiang, S. Seth, Yaodong Yang
{"title":"SmartStealing: Analysis and Optimization of Work Stealing in Parallel Garbage Collection for Java VM","authors":"Junjie Qian, W. Srisa-an, Du Li, Hong Jiang, S. Seth, Yaodong Yang","doi":"10.1145/2807426.2807441","DOIUrl":null,"url":null,"abstract":"Parallel garbage collection has been used to speedup the collection process on multicore architectures. Similar to other parallel techniques, balancing the workload among threads is critical to ensuring good overall collection performance. To this end, work stealing is employed by the current state-of-the-art Java Virtual Machine, OpenJDK, to keep GC threads from idling during a collection process. However, we found that the current algorithm is not efficient. Its usage can often cause GC performance to be worse than when work stealing is not used. In this paper, we identify three factors that affect work stealing efficiency: determining tasks that can benefit from stealing, frequency with which to attempt stealing, and performance impacts of failed stealing attempts. Based on this analysis, we propose SmartStealing, a new algorithm that can automatically decide whether to attempt stealing at a particular point during execution. If stealing is attempted, it can efficiently identify a task to steal from. We then compare the collection performances when (i) the default work stealing algorithm is used, (ii) work stealing is not used at all, and (iii) the SmartStealing approach is used. Without modifying the remaining garbage collection system, the evaluation result shows that SmartStealing can reduce the parallel GC execution time for 19 of the 21 benchmarks. The average reduction is 50.4% and the highest reduction is 78.7%. We also investigate the performances of SmartStealing on NUMA and UMA architectures.","PeriodicalId":104024,"journal":{"name":"Proceedings of the Principles and Practices of Programming on The Java Platform","volume":"20 8","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-09-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"7","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the Principles and Practices of Programming on The Java Platform","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2807426.2807441","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 7

Abstract

Parallel garbage collection has been used to speedup the collection process on multicore architectures. Similar to other parallel techniques, balancing the workload among threads is critical to ensuring good overall collection performance. To this end, work stealing is employed by the current state-of-the-art Java Virtual Machine, OpenJDK, to keep GC threads from idling during a collection process. However, we found that the current algorithm is not efficient. Its usage can often cause GC performance to be worse than when work stealing is not used. In this paper, we identify three factors that affect work stealing efficiency: determining tasks that can benefit from stealing, frequency with which to attempt stealing, and performance impacts of failed stealing attempts. Based on this analysis, we propose SmartStealing, a new algorithm that can automatically decide whether to attempt stealing at a particular point during execution. If stealing is attempted, it can efficiently identify a task to steal from. We then compare the collection performances when (i) the default work stealing algorithm is used, (ii) work stealing is not used at all, and (iii) the SmartStealing approach is used. Without modifying the remaining garbage collection system, the evaluation result shows that SmartStealing can reduce the parallel GC execution time for 19 of the 21 benchmarks. The average reduction is 50.4% and the highest reduction is 78.7%. We also investigate the performances of SmartStealing on NUMA and UMA architectures.
SmartStealing: Java虚拟机并行垃圾回收中工作窃取的分析与优化
并行垃圾收集已被用于加速多核架构上的垃圾收集过程。与其他并行技术类似,在线程之间平衡工作负载对于确保良好的总体收集性能至关重要。为此,当前最先进的Java虚拟机OpenJDK采用了工作窃取技术,以防止GC线程在收集过程中空闲。然而,我们发现目前的算法效率并不高。使用它通常会导致GC性能比不使用工作窃取时更差。在本文中,我们确定了影响工作窃取效率的三个因素:确定可以从窃取中受益的任务,尝试窃取的频率,以及失败的窃取尝试对绩效的影响。基于这种分析,我们提出了一种新的算法SmartStealing,它可以自动决定是否在执行过程中的特定点尝试偷窃。如果试图窃取,它可以有效地识别要窃取的任务。然后,我们比较了以下情况下的收集性能:(i)使用默认的工作窃取算法,(ii)根本不使用工作窃取,以及(iii)使用SmartStealing方法。在不修改剩余垃圾收集系统的情况下,评估结果表明,SmartStealing可以减少21个基准测试中的19个的并行GC执行时间。平均降幅为50.4%,最高降幅为78.7%。我们还研究了SmartStealing在NUMA和UMA架构上的性能。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信