首页> 外文会议>2010 IEEE International Symposium on Parallel amp; Distributed Processing (IPDPS) >Improving the performance of program monitors with compiler support in multi-core environment
【24h】

Improving the performance of program monitors with compiler support in multi-core environment

机译:在多核环境中使用编译器支持来提高程序监视器的性能

获取原文
获取原文并翻译 | 示例
获取外文期刊封面目录资料

摘要

Dynamic program execution monitors allow programmers to observe and verify an application while it is running. Instrumentation-based dynamic program monitors often incur significant performance overhead due to instrumentation. Special hardware supports have been proposed to reduce this overhead. However, these supports mostly target specific monitoring requirements and thus have limited applicability. Recently, with multi-core processors becoming mainstream, executing the monitored program and the monitor simultaneously on separate cores has emerged as an attractive option. However, communication between the two often becomes the new performance bottleneck due to large amounts of information forwarded to the monitor. In this paper, we present compiler techniques that aim to minimize the communication overhead. Our proposal is based on the observations that a monitor only requires specific information from the monitored programs and some information can be easily computed by the monitor from data that have already been communicated. We developed a code generator and optimization techniques to decide the set of data items to forward and the set to compute, so that the total execution time of the monitor is minimized. Our compiler can optimize a variety of monitors with diverse monitoring requirements, taking as input the control flow graph of the monitored program and the set of data that needs verification. Using a static binary rewriter, we evaluate the performance impact of the proposed compiler techniques on the SPEC2006 integer benchmarks for two intensive monitoring tasks: taint-propagation and memory bug detection. Comparing to instrumentation-based monitors, the proposed techniques can bring down the performance overhead of the two monitors from 10.6× and 9.0× to 2.36× and 2.17×, respectively.
机译:动态程序执行监视器使程序员可以在应用程序运行时观察和验证应用程序。基于工具的动态程序监视器通常会由于工具而导致显着的性能开销。已经提出了特殊的硬件支持来减少这种开销。但是,这些支持主要针对特定​​的监视要求,因此适用范围有限。最近,随着多核处理器成为主流,在单独的内核上同时执行被监视程序和监视器已成为一种有吸引力的选择。但是,由于将大量信息转发给监视器,因此两者之间的通信通常成为新的性能瓶颈。在本文中,我们提出了旨在最小化通信开销的编译器技术。我们的建议基于这样的观察:监视程序仅需要监视程序中的特定信息,并且监视程序可以很容易地从已经通信的数据中计算出一些信息。我们开发了代码生成器和优化技术来确定要转发的数据项集和要计算的集,以使监视器的总执行时间最小化。我们的编译器可以将监视程序的控制流程图和需要验证的数据集作为输入,从而优化具有各种监视要求的各种监视器。使用静态二进制重写器,我们针对两个密集监视任务(污点传播和内存错误检测)评估了建议的编译器技术对SPEC2006整数基准的性能影响。与基于仪器的监视器相比,建议的技术可以将两个监视器的性能开销分别从10.6和9.0降低到2.36和2.17。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号