Information Technology Reference
In-Depth Information
Accelerating Data Race Detection Utilizing
On-Chip Data-Parallel Cores
Vineeth Mekkat, Anup Holey, and Antonia Zhai
Department of Computer Science & Engineering,
University of Minnesota,
Minneapolis MN 55455, USA
{ mekkat,aholey,zhai } @cs.umn.edu
Abstract. Programmers are taking advantage of the increasing availability of on-
chip parallelism to meet the rising performance demands of diverse applications.
Support of tools that can facilitate the detection of incorrect program execution
when concurrent threads are involved is critical to this evolution. Many concur-
rency bugs manifest as some form of data race condition, and their runtime detec-
tion is inherently difficult due to the high overhead of the required memory trace
comparisons. Various software and hardware tools have been proposed to detect
concurrency bugs at runtime. However, software-based schemes lead to signif-
icant performance overhead, while, hardware-based schemes require significant
hardware modifications. To enable cost-efficient design of data race detectors, it
is desirable to utilize available on-chip resources. The recent integration of CPU
cores with data-parallel accelerator cores, such as GPU, provides the opportunity
to offload the task of data race detection to these accelerator cores. In this paper,
we explore this opportunity by designing a GPU Accelerated Data Race Detector
(GUARD) that utilizes GPU cores to process memory traces and detect data races
in parallel applications executing on the CPU cores. GUARD further explores
various optimization techniques for: (i) reducing the size of memory traces by
employing signatures; and (ii) improving accuracy of signatures using coherence-
based filtering. Overall, GUARD achieves the performance of hardware-based
data race detection mechanisms with minimal hardware modifications.
1
Introduction
With the increased availability of on-chip parallelism in modern multicore processors,
programmers are actively parallelizing applications from diverse domains to take ad-
vantage of the abundant computing power at their disposal. However, ensuring the cor-
rect execution of parallel applications is challenging due to the difficulty in tracking
concurrency bugs [1, 2]. This characteristic has necessitated the development of effi-
cient concurrency bug detection tools. Data race is one of the main classes of concur-
rency bugs; and being able to detect data races efficiently at runtime can facilitate the
development of powerful tools that can enhance the reliability of parallel applications.
However, existing proposals can be expensive in terms of performance overhead and/or
implementation cost. Software-based data race detection tools [3, 4] often slow down
the monitored application by orders of magnitude, thus, limiting their applicability. Al-
though hardware-based data race detection tools [5, 6] inflict a near-zero performance
 
Search WWH ::




Custom Search