首页> 外文会议>IEEE/ACM International Symposium on Microarchitecture >ATDetector: Improving the accuracy of a commercial data race detector by identifying address transfer
【24h】

ATDetector: Improving the accuracy of a commercial data race detector by identifying address transfer

机译:ATDetector:通过识别地址传输来提高商业数据竞赛检测器的准确性

获取原文

摘要

In order to take advantage of multi-core hardware, more and more applications are becoming multi-threaded. Unfortunately concurrent programs are prone to bugs, such as data races. Recently much work has been devoted to detecting data races in multi-threaded programs. Most tools, however, require the accurate knowledge of synchronizations in the program, and may otherwise suffer from false positives in race detection, limiting their usability. To address this problem, some tools such as Intel® Inspector provide mechanisms for suppressing false positives and/or annotating synchronizations not automatically recognized by the tools. However, they require users' input or even changes of the source code. We took a different approach to address this problem. More specifically, we first used a state-of-the-art commercial data race detector, namely Intel® Inspector on 17 applications of various types including 5 servers, 5 client/desktop applications, and 7 scientific ones, without utilizing any suppression or annotation mechanisms provided by the product that need users' input. We examined a total of 1420 false data races and identified two major root causes including address transfer, where one thread passes memory address to another thread. We found more than 62% false data races were caused by address transfer. Based on this observation, we designed and implemented an algorithm that automatically identify address transfer and use the information to prune the false data races. Our evaluation with 8 real-world applications shows that it can effectively prune all false data races caused by unrecognized address transfers, without eliminating any true data race that was originally reported.
机译:为了利用多核硬件,越来越多的应用程序正在成为多线程。不幸的是,并发程序容易出现错误,例如数据争用。最近,许多工作已致力于检测多线程程序中的数据竞争。但是,大多数工具都要求对程序中的同步有准确的了解,否则可能会在竞争检测中遭受误报,从而限制了其可用性。为了解决此问题,某些工具(例如英特尔®Inspector)提供了抑制误报和/或注释工具无法自动识别的同步的机制。但是,它们需要用户输入,甚至需要更改源代码。我们采用了不同的方法来解决此问题。更具体地说,我们首先在不使用任何抑制或注释的情况下,在17种各种类型的应用程序(包括5台服务器,5个客户端/桌面应用程序和7种科学应用程序)上使用了最先进的商业数据竞速检测器,即Intel®Inspector。产品提供的需要用户输入的机制。我们检查了总共1420个错误数据竞争,并确定了两个主要的根本原因,包括地址传输,其中一个线程将内存地址传递给另一个线程。我们发现超过62%的错误数据争用是由地址传输引起的。基于此观察,我们设计并实现了一种算法,该算法可自动识别地址传输并使用该信息来修剪错误的数据竞争。我们对8个实际应用程序的评估表明,它可以有效地修剪由无法识别的地址传输引起的所有错误数据争用,而不会消除最初报告的任何真实数据争用。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号