Object-oriented Programming has become one of the most dominant design paradigms as the separation of concerns and adaptability of design reduce development and maintenance costs. However, the convenience is not without cost. The added indirection inherent in such designs causes excessive pointer chasing, negatively affecting locality, which in turn degrades the performance of cache structures. Furthermore, modern hardware prefetchers are mostly stride prefetchers that are ill-equipped to handle the unpredictability of access patterns generated by pointer chasing. Most software approaches that seek to address this problem resort to profiling the program as it runs, which comes with a significant run-time overhead or requires data from previous runs. In this paper, we propose the use of compile-time static analysis to predict the most common access patterns displayed by a program during run time. Since Java is one of the most popular object-oriented languages, we implement our prototype within the OpenJ9 JVM, inside the OMR optimizer infrastructure. The outputs of our proposed predictor are Markov chains that model the expected behavior of the program. The effectiveness of the proposed predictor is evaluated by comparing the model with the actual run-time behavior of the program measured using an instrumented interpreter. Our experiments show that the proposed predictor exhibits good accuracy and can be used to inform minimally intrusive load stall mitigation strategies, e.g. informing copying GCs on more locality-friendly copying orders


翻译:面向对象编程已成为最主流的设计范式之一,其关注点分离和设计适应性降低了开发与维护成本。然而,这种便利性并非没有代价。此类设计中固有的间接寻址会导致过度的指针追踪,对局部性产生负面影响,进而降低缓存结构的性能。此外,现代硬件预取器多为步幅预取器,难以有效处理指针追踪产生的不可预测访问模式。多数试图解决该问题的软件方法依赖于程序运行时的性能分析,这会带来显著的运行时开销或需要依赖历史运行数据。本文提出利用编译时静态分析来预测程序在运行时最常见访问模式的方法。鉴于Java是最流行的面向对象语言之一,我们在OpenJ9 JVM的OMR优化器基础设施中实现了原型系统。所提出预测器的输出是建模程序预期行为的马尔可夫链。通过将模型与基于插桩解释器测量的程序实际运行时行为进行对比,评估了该预测器的有效性。实验表明,所提出的预测器具有良好准确性,可用于指导侵入性最小的负载停顿缓解策略,例如为复制式垃圾回收器提供更有利于局部性的复制顺序建议。

0
下载
关闭预览

相关内容

【AAAI2025】TimeDP:通过领域提示学习生成多领域时间序列
ChatAug: 利用ChatGPT进行文本数据增强
专知会员服务
81+阅读 · 2023年3月4日
Python图像处理,366页pdf,Image Operators Image Processing in Python
论文浅尝 | GEOM-GCN: Geometric Graph Convolutional Networks
开放知识图谱
14+阅读 · 2020年4月8日
论文报告 | Graph-based Neural Multi-Document Summarization
科技创新与创业
15+阅读 · 2017年12月15日
LibRec 每周算法:LDA主题模型
LibRec智能推荐
29+阅读 · 2017年12月4日
Spark机器学习:矩阵及推荐算法
LibRec智能推荐
16+阅读 · 2017年8月3日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
6+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
Arxiv
18+阅读 · 2024年12月27日
Arxiv
176+阅读 · 2023年4月20日
A Survey of Large Language Models
Arxiv
501+阅读 · 2023年3月31日
Arxiv
27+阅读 · 2023年3月17日
VIP会员
最新内容
《无人机革命:来自俄乌战场的启示》(报告)
专知会员服务
2+阅读 · 54分钟前
《实现联合作战能力所需的技术》58页报告
专知会员服务
1+阅读 · 今天6:30
以色列运用人工智能优化空袭警报系统
专知会员服务
0+阅读 · 今天6:20
以色列在多条战线部署AI智能体
专知会员服务
1+阅读 · 今天6:12
2025年大语言模型进展报告
专知会员服务
13+阅读 · 4月25日
多智能体协作机制
专知会员服务
12+阅读 · 4月25日
非对称优势:美海军开发低成本反无人机技术
专知会员服务
9+阅读 · 4月25日
《美战争部小企业创新研究(SBIR)计划》
专知会员服务
8+阅读 · 4月25日
《军事模拟:将军事条令与目标融入AI智能体》
专知会员服务
12+阅读 · 4月25日
【NTU博士论文】3D人体动作生成
专知会员服务
9+阅读 · 4月24日
相关VIP内容
【AAAI2025】TimeDP:通过领域提示学习生成多领域时间序列
ChatAug: 利用ChatGPT进行文本数据增强
专知会员服务
81+阅读 · 2023年3月4日
Python图像处理,366页pdf,Image Operators Image Processing in Python
相关基金
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
6+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员