An efficient parallel heap compaction algorithm

Author:

Abuaiadh Diab1,Ossia Yoav1,Petrank Erez2,Silbershtein Uri1

Affiliation:

1. IBM Haifa Research Laboratory, Mount Carmel, Haifa, ISRAEL

2. Dept. of Computer Science, Technion - Israel Institute of Technology, Haifa, Israel

Abstract

We propose a heap compaction algorithm appropriate for modern computing environments. Our algorithm is targeted at SMP platforms. It demonstrates high scalability when running in parallel but is also extremely efficient when running single-threaded on a uniprocessor. Instead of using the standard forwarding pointer mechanism for updating pointers to moved objects, the algorithm saves information for a pack of objects. It then does a small computation to process this information and determine each object's new location. In addition, using a smart parallel moving strategy, the algorithm achieves (almost) perfect compaction in the lower addresses of the heap, whereas previous algorithms achieved parallelism by compacting within several predetermined segments. Next, we investigate a method that trades compaction quality for a further reduction in time and space overhead. Finally, we propose a modern version of the two-finger compaction algorithm. This algorithm fails, thus, re-validating traditional wisdom asserting that retaining the order of live objects significantly improves the quality of the compaction. The parallel compaction algorithm was implemented on the IBM production Java Virtual Machine. We provide measurements demonstrating high efficiency and scalability. Subsequently, this algorithm has been incorporated into the IBM production JVM.

Publisher

Association for Computing Machinery (ACM)

Subject

Computer Graphics and Computer-Aided Design,Software

Reference16 articles.

1. java.lang class system. http://java.sun.com/j2se/1.3/docs/api/java/lang/System.html. java.lang class system. http://java.sun.com/j2se/1.3/docs/api/java/lang/System.html.

2. A real-time garbage collector with low overhead and consistent utilization

3. An algorithm for parallel incremental compaction

4. Sam Borman. Sensible Sanitation - Understanding the IBM Java Garbage Collector (Part 1: Object allocation). http://www.ibm.com/developerworks/ibm/library/i-garbage1. Sam Borman. Sensible Sanitation - Understanding the IBM Java Garbage Collector (Part 1: Object allocation). http://www.ibm.com/developerworks/ibm/library/i-garbage1.

Cited by 12 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Improving program locality in the GC using hotness;Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation;2020-06-06

2. Massively parallel GPU memory compaction;Proceedings of the 2019 ACM SIGPLAN International Symposium on Memory Management - ISMM 2019;2019

3. Skip compactors for garbage collection based on space utilization;Journal of the Chinese Institute of Engineers;2018-05-19

4. Limitations of Partial Compaction;ACM Transactions on Programming Languages and Systems;2017-03-23

5. Performance Analysis and Optimization of Full Garbage Collection in Memory-hungry Environments;ACM SIGPLAN Notices;2016-10-11

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3