• 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