2003 · 14 citations · 6 references
ComputingComputer ScienceHigh-performance ComputingComputer ArchitectureParallel ComputingProgramming LanguagesControl-flow AnalysisData ParallelismData-flow AnalysisParallel DebuggingAutomatic ParallelizationCompiler DirectiveData Dependence AnalysisDebuggingExecution Trace AnalysisOpenmpParallelizationStatic Dependency Analysis
In this work we show how automatic relative debugging can be used to find differences in computation between a correct serial program and an OpenMP parallel version of that program that does not yield correct results. Backtracking and re-execution are used to determine the first OpenMP parallel region that produces a difference in computation that may lead to an incorrect value the user has indicated. Our approach also lends itself to finding differences between parallel computations, where executing with M threads produces expected results but an N thread execution does not (M, N > 1, M ≠ N). OpenMP programs created using a parallelization tool are addressed by utilizing static analysis and directive information from the tool. Hand-parallelized programs, where OpenMP directives are inserted by the user, are addressed by performing data dependence and directive analysis.
6
Stefan Savage, Michael T. Burrows, Greg Nelson et al. · ACM Transactions on Computer Systems · 1997 · 1.6K citations · Full text
Robert Hood · 1996 · 75 citations