NDSeq: runtime checking for nondeterministic sequential specifications of parallel correctness

PLDI(2011)

引用 27|浏览48
暂无评分
摘要
We propose to specify the correctness of a program's parallelism using a sequential version of the program with controlled nondeterminism. Such a nondeterministic sequential specification allows (1) the correctness of parallel interference to be verified independently of the program's functional correctness, and (2) the functional correctness of a program to be understood and verified on a sequential version of the program, one with controlled nondeterminism but no interleaving of parallel threads. We identify a number of common patterns for writing nondeterministic sequential specifications. We apply these patterns to specify the parallelism correctness for a variety of parallel Java benchmarks, even in cases when the functional correctness is far too complex to feasibly specify. We describe a sound runtime checking technique to validate that an execution of a parallel program conforms to its nondeterministic sequential specification. The technique uses a novel form of conflict-serializability checking to identify, for a given interleaved execution of a parallel program, an equivalent nondeterministic sequential execution. Our experiments show a significant reduction in the number of false positives versus traditional conflict-serializability in checking for parallelization bugs.
更多
查看译文
关键词
equivalent nondeterministic sequential execution,nondeterministic sequential specification,functional correctness,parallel correctness,sequential version,parallel interference,controlled nondeterminism,parallel thread,runtime checking,parallel java benchmarks,parallel program,parallelism correctness,specification,serializability,false positive
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要