KUDA: GPU Accelerated Split Race Checker
Koc University, Istanbul, Turkey
Workshop on Determinism and Correctness in Parallel Programming (WoDet), 2012
@article{bekar2012kuda,
title={KUDA: GPU Accelerated Split Race Checker},
author={Bekar, U.C. and Elmas, T. and Okur, S. and Tasiran, S.},
year={2012}
}
We propose a novel approach for runtime verification on computers with a large number of computation cores, without any hardware extension to mainstream PC environment. The goal of the approach is making use of all hardware resources to decouple the computational overhead of traditional race checkers via parallelizing the runtime verification. We distinguish between two kinds of computational overhead: (i) overhead caused by monitoring, and (ii) overhead due to the verification algorithm(s). So far, runtime verification algorithms have been designed to run on the same threads as the code being monitored and both (i) and (ii) contribute to the slowdown of the program being monitored. The framework we propose allows us to carry out (ii) on separate, dedicated cores and threads. As a result, the program being monitored only experiences slowdown due to (i) and plus the communication of the events to be monitored. There exists related work showing that with some inexpensive hardware support (i) can be reduced to negligible levels. By parallelizing analyses our experiments show that they run as fast as the program being monitored, but on separate computational resources, one can potentially use this approach for monitoring, error detection, containment, and recovery from errors. As a demonstration of concept, we investigate runtime monitoring for concurrency bugs, in particular, data race detection. We use a few CPU threads and a large number of cores on a GPU to minimize the slowdown of the application on which race detection is being run.
March 6, 2012 by hgpu