VORD: A Versatile On-the-fly Race Detection Tool in OpenMP Programs

VORD: A Versatile On-the-fly Race Detection Tool in OpenMP Programs
复制标题

VORD:OpenMP 程序中的多功能动态竞争检测工具

DOI:
10.1007/s10766-013-0257-6
复制
发表时间:
2014
影响因子:
1.5
通讯作者:
Yong
Yong
中科院分区:
计算机科学4区
文献类型:
--
作者:
Young;Sejun Song;Yong

文献摘要

被引文献

相似文献

基于OpenMP和Posix-thread API的共享记录并行编程变得更加普遍,可以充分利用多处理器计算环境。多线程编程中的关键风险之一是数据竞赛很难进行调试,并且如果被杀死的话,它们会严重损害并行应用程序。尽管在构建专业数据竞赛检测技术方面已经付出了充分的努力,但是诸如英特尔线程检查器之类的最先进的工具仍然存在各种功能和性能问题。在本文中,我们提供了一种通用的种族检测(VORD)工具,该工具为各种并行编程模型提供了敏捷,高效且可扩展的种族检测环境。 Vord可以通过使用分类和适应机制自动构建一组最佳的种族发动机集。创建了种族检测分类(RDC)表,以在标签,检测和过滤方面对足够的发动机进行分类。发动机代码属性选择器(ECP)使用RDC表来适应给定目标编程模型的最佳发动机。除了RDC和ECPS外,我们还实施了OpenMP解析器和一个源仪器。通过使用一组基于OpenMP的内核程序,将VORD的功能和效率与Intel线程检查器的功能和效率进行了比较。实验结果表明,VORD可以在更具挑战性的编程模型(例如嵌套线和同步模型)中检测数据种族,并且可以比大型平行程序中的英特尔线程检查器实现更快的处理时间级订单。
Shared-memory based parallel programming with OpenMP and Posix-thread APIs becomes more common to fully take advantage of multiprocessor computing environments. One of the critical risks in multithreaded programming is data races that are hard to debug and greatly damaging to parallel applications if they are uncaught. Although ample effort has been made in building specialized data race detection techniques, the state of art tools such as the Intel Thread Checker still have various functionality and performance problems. In this paper, we present a Versatile On-the-fly Race Detection (VORD) tool that provides an agile, efficient, and scalable race detection environment for various parallel programming models. VORD can automatically construct an empirically optimal set of race engines by utilizing classification and adaptation mechanisms. A Race-Detection Classification (RDC) table is created to categorize adequate engines in the aspect of labeling, detecting, and filtering. An Engine Code Property Selector (ECPS) uses the RDC table to adapt optimal engines for the given target programming models. In addition to RDC and ECPS, we have also implemented an OpenMP parser and a source instrumentor. The functionality and efficiency of VORD were compared with those of the Intel Thread Checker by using a set of OpenMP based kernel programs. The experimental results show that VORD can detect data races in more challenging programming models such as nested thread and synchronization models, and can achieve a couple of orders of a magnitude faster processing time than the Intel Thread Checker in the large parallel programs.