A Protocol-Centric Approach to On-The-Fly Race Detection

In IEEE Transactions on Parallel and Distributed Systems (TPDS), 11(10): 1058-1072, October 2000.

Dejan Perkovic and Pete Keleher

We present the design and evaluation of a low-cost data-race-detection technique. Our technique executes at runtime rather than post-mortem, and handles unmodified shared-memory applications that run on top of CVM, a software distributed shared memory system. We do not assume explicit associations between synchronization and shared data, and use neither compiler support nor program source. Instead, we use a binary code re-writer to instrument instructions that may access shared memory.

The most novel aspect of our system is that we are able to use information from the underlying memory system implementation in order to reduce the number of comparisons made at run time.

We present an experimental evaluation of our techniques by using our system to look for data races in five common shared-memory programs. Our system correctly found races in three of the five programs, including two from a standard benchmark suite. We show that the overhead of this debugging technique can be as low as 22%.

We further studied the impact of four optimizations to the basic technique: data flow analysis, instrumentation batching, runtime code modification, and instrumentation inlining.

	title = "A Protocol-Centric Approach to On-The-Fly Race Detection",
	author = "Dejan Perkovic and Pete Keleher",
	journal = {IEEE Transactions on Parallel and Distributed Systems (TPDS)},
	pages = {1058-1072},
	volume = {11},
	issue = {10},
	month = {October},
	year = {2000},

Available: bibtex, abstract,