This Article 
 Bibliographic References 
 Add to: 
A Protocol-Centric Approach to on-the-Fly Race Detection
October 2000 (vol. 11 no. 10)
pp. 1058-1072

Abstract—We present the design and evaluation of a new 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 require 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 runtime. We present an experimental evaluation of our techniques by using our system to look for data races in five common shared-memory programs. We quantify the effect of several optimizations to the basic technique: data flow analysis, instrumentation batching, runtime code modification, and instrumentation inlining. Our system correctly found races in three of the five programs, including two from a standard benchmark suite. The slowdown of this debugging technique averages less than 2.5 for our applications.

[1] S.V. Adve and M.D. Hill,“A unified formalization of four shared-memory models,” IEEE Trans. on Parallel and Distributed Systems, vol. 4, no. 6, pp. 613-624, June 1993.
[2] S.V. Adve, M.D. Hill, B.P. Miller, and R.H.B. Netzer, “Detecting Data Races on Weak Memory Systems,” Proc. 18th Ann. Int'l Symp. Computer Architecture, pp. 234–243, May 1991.
[3] T.R. Allen and D.A. Padua, “Debugging Fortran on a Shared Memory Machine,” Int'l Conf. Parallel Processing, pp. 721–727, Aug. 1987.
[4] J.-D. Choi and S.L. Min, "Race Frontier: Reproducing Data Races in Parallel-Program Debugging," Proc. SIGPLAN '91 Symp. Principals and Practice of Parallel Programming, pp. 145-154,Williamsburg, Va., Apr.21-24 1991.
[5] R.F. Cmelik and D. Keppel, Shade: A Fast Instruction-Set Simulator for Execution Profiling, Sun Microsystems Laboratories and Univ. of Washington, Tech. Report SMLI 93-12 and UWCSE, June,6 1993.
[6] K. Cooper, M.W. Hall, and K. Kennedy, “A Methodology for Procedure Cloning,” Computer Languages, vol. 19, no. 2, pp. 105–117, Feb. 1993.
[7] A. Dinning and E. Shonberg,“An empirical comparison of monitoring algorithms for access anomalydetection,” Second ACM SIGPLAN Symp. on Principles and Practice of ParallelProgramming, 1990.
[8] K. Gharachorloo, D. Lenoski, J. Laudon, P. Gibbons, A. Gupta, and J. Hennessy, “Memory Consistency and Event Ordering in Scalable Shared-Memory Multiprocessors,” Proc. 17th Ann. Int'l Symp. Computer Architecture, 1990.
[9] R. Hood, K. Kennedy, and J. Mellor-Chrummey, "Parallel Program Debugging With On-the-Fly Anomaly Detection," Proc. Supercomputing 1990, pp. 78-81,New York, Nov. 1990.
[10] P. Keleher, “Distributed Shared Memory Using Lazy Release Consistency,” PhD thesis, Rice Univ., 1994.
[11] P. Keleher, A.L. Cox, and W. Zwaenepoel, “Lazy Release Consistency for Software Distributed Shared Memory,” Proc. 19th Ann. Int'l Symp. Computer Architecture, pp. 13-21, May 1992.
[12] P. Keleher, S. Dwarkadas, A. Cox, and W. Zwaenepoel, “Treadmarks: Distributed Shared Memory on Standard Workstations and Operating Systems,” Proc. 1994 Winter Usenix Conf., pp. 115–131, Jan. 1994.
[13] P. Keleher, “The Coherent Virtual Machine,” Technical Report TR93-215, Dept. of Computer Science, Univ. of Maryland, Sept. 1995.
[14] P. Keleher, “The Relative Importance of Concurrent Writers and Weak Consistency Models,” Proc. 16th Int'l Conf. Distributed Computing Systems, May 1996.
[15] L. Lamport, “How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs,” IEEE Trans. Computers, vol. 28, no. 9, pp. 690–691, Sept. 1979.
[16] J.R. Larus and E. Schnarr, "EEL: Machine Independent Executable Editing," Proc. Sigplan Programming Languages, Design, and Implementation, ACM Press, New York, 1995, pp. 291-300.
[17] J. Mellor-Crummey, “Compile-Time Support for Efficient Data Race Detection in Shared-Memory Parallel Programs,” Technical Report CRPC-TR92232, Rice Univ., Sept. 1992.
[18] R.H.B. Netzer and B.P. Miller, “Improving the Accuracy of Data Race Detection,” Proc. 1991 Conf. Principles and Practice of Parallel Programming, Apr. 1991.
[19] R.H.B. Netzer and B.P. Miller, “On the Complexity of Event Ordering for Shared-Memory Parallel Program Executions,” Proc. 1990 Int'l Conf. Parallel Processing, pp. 93–97, Aug. 1990.
[20] R.H.B. Netzer and B.P. Miller, "What Are Race Conditions? Some Issues of Formalizations," ACM Letters on Programming Languages and Systems, vol. 1, no. 1, pp. 74-88, 1991.
[21] D. Perkovic and P.J. Keleher, “Online Data-Race Detection via Coherency Guarantees,” Proc. Second USENIX Symp. Operating System Design and Implementation (OSDI '96), pp. 47–58, Oct. 1996.
[22] T. Romer, G. Voelker, D. Lee, A. Wolman, W. Wong, H. Levy, and B. Bershad, “Instrumentation and Optimization of Win32/Intel Executables Using Etch,” USENIX Windows NT Workshop, 1997.
[23] M.A. Ronsse and W. Zwaenepoel, “Execution Replay for TreadMarks,” submitted for publication, 1996.
[24] M. Ronsse and K. De Bosschere, “Work in Progress: An on-the-Fly Data Race Detector for Recplay, a Record/Replay System for Parallel Programs” Proc. 16th ACM Symp. Operating Systems Principles, (work in progress), Oct. 1997.
[25] S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson, “Eraser: A Dynamic Data Race Detector for Multi-Threaded Programs,” Proc. 16th ACM Symp. OS Principles, France: Saint-Malo, pp. 26–37, 1997.
[26] A. Srivastava and A. Eustace, "ATOM: A System for Building Customized Program Analysis Tools," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation, ACM Press, New York, 1994.
[27] S.C. Woo et al., "The SPLASH-2 Programs: Characterization and Methodological Considerations," Proc. 22nd Annual Int'l Symp. Computer Architecture, IEEE CS Press, Los Alamitos, Calif., June 1995, pp. 24-36.

Index Terms:
Data races, on-the-fly, DSM, shared memory.
Dejan Perkovic, Peter J. Keleher, "A Protocol-Centric Approach to on-the-Fly Race Detection," IEEE Transactions on Parallel and Distributed Systems, vol. 11, no. 10, pp. 1058-1072, Oct. 2000, doi:10.1109/71.888645
Usage of this product signifies your acceptance of the Terms of Use.