DocumentCode :
1902147
Title :
Lightweight fault detection in parallelized programs
Author :
Li Tan ; Min Feng ; Gupta, Rajesh
fYear :
2013
fDate :
23-27 Feb. 2013
Firstpage :
1
Lastpage :
11
Abstract :
A popular approach for producing parallel software is to develop a sequential version of an application and then incrementally introduce parallel constructs to parallelize different parts of the application. During the parallelization process, programming errors may be introduced, causing concurrency bugs. In this paper we develop a technique for runtime detection of data dependence faults (i.e., data races and atomicity violations) introduced during parallelization. By leveraging the availability of two versions of the program, the sequential one and the parallelized one, we comparison check dynamic data dependences exercised during executions of the two versions to identify faults. To reduce the cost of comparison checking we develop three optimizations. The first optimization causes only a subset of dynamically exercised data dependences to be comparison checked. The second optimization shows that not all instances of a dynamically exercised data dependence need to be comparison checked. The third optimization shows that static analysis of parallelizing constructs can be exploited to eliminate the need for executing the parallelized version altogether. In addition, our solution is applicable when different program executions on the same input may follow different execution paths, it is effective in situations where the fault introduced manifests itself rarely during execution, and it is also effective in pinpointing the location of the fault in the program. We implemented and evaluated our approach using ten benchmarks. The experimental results indicate an average slowdown of 3× to perform fault detection.
Keywords :
benchmark testing; concurrency control; parallel programming; program diagnostics; program verification; software fault tolerance; atomicity violations; benchmarks; comparison checking; concurrency bugs; data races; dynamic data dependences; lightweight fault detection; parallel software; parallelization process; parallelized programs; program executions; program fault location pinpointing; programming errors; run-time data dependence fault detection technique; sequential application version; static analysis; Benchmark testing; Computer bugs; Concurrent computing; Debugging; Optimization; Pipeline processing; atomicity violations; data races; debugging; dependence violation; program parallelization;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Code Generation and Optimization (CGO), 2013 IEEE/ACM International Symposium on
Conference_Location :
Shenzhen
Print_ISBN :
978-1-4673-5524-7
Type :
conf
DOI :
10.1109/CGO.2013.6494979
Filename :
6494979
Link To Document :
بازگشت