Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

A Protocol-Centric Approach to on-the-Fly Race Detection

Published: 01 October 2000 Publication History
  • Get Citation Alerts
  • 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.

    References

    [1]
    S.V. Adve and M.D. Hill, “A Unified Formalization of Four Shared-Memory Models,” Trans. 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. Choi and S.L. Min, “Race Frontier: Reproducing Data Races in Parallel Program Debugging,” Proc. 1991 Conf. Principles and Practice of Parallel Programming, Apr. 1991.]]
    [5]
    R.F. Cmelik and D. Keppel, “Shade: A Fast Instruction-Set Simulator for Execution Profiling” Technical Report TR-93-12, Sun Microsystems Lab, July 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. Schonberg, “An Empirical Comparison of Monitoring Algorithms for Access Anomaly Detection,” Proc. 1990 Conf. Principles and Practice of Parallel Programming, pp. 1–10, Mar. 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, pp. 15–26, May 1990.]]
    [9]
    R. Hood K. Kennedy and J. Mellor-Crummey, “Parallel Program Debugging with on-the-Fly Anomaly Detection,” Proc. Supercomputing '90, pp. 15–26, May 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 `95 Conf. Programming Language Design and Implementation, June 1995.]]
    [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?” ACM Letters on Programming Languages and Systems, Mar. 1992.]]
    [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 Multithreaded Programs,” Proc. 16th ACM Symp. Operating Systems Principles, Oct. 1997.]]
    [26]
    A. Srivastava and A. Eustace, “ATOM: A System for Building Customized Program Analysis Tools,” Proc. SIGPLAN`94 Conf. Programming Language Design and Implementation, May 1994.]]
    [27]
    S.C. Woo M. Ohara E. Torrie J.P. Singh and A. Gupta, “The SPLASH-2 Programs: Characterization and Methodological Considerations,” Proc. 22nd Ann. Int'l Symp. Computer Architecture, pp. 24–37, June 1995.]]

    Cited By

    View all
    • (2018)Race-Condition-Aware and Hardware-Oriented Task Partitioning and Scheduling Using Entropy MaximizationIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2017.278482929:7(1589-1604)Online publication date: 1-Jul-2018
    • (2017)LDACM Transactions on Architecture and Code Optimization10.1145/304667814:1(1-25)Online publication date: 21-Mar-2017
    • (2015)An efficient algorithm for on-the-fly data race detection using an epoch-based techniqueScientific Programming10.1155/2015/2058272015(13-13)Online publication date: 1-Jan-2015
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image IEEE Transactions on Parallel and Distributed Systems
    IEEE Transactions on Parallel and Distributed Systems  Volume 11, Issue 10
    October 2000
    94 pages
    ISSN:1045-9219
    Issue’s Table of Contents

    Publisher

    IEEE Press

    Publication History

    Published: 01 October 2000

    Author Tags

    1. DSM
    2. Data races
    3. on-the-fly
    4. shared memory.

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 27 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2018)Race-Condition-Aware and Hardware-Oriented Task Partitioning and Scheduling Using Entropy MaximizationIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2017.278482929:7(1589-1604)Online publication date: 1-Jul-2018
    • (2017)LDACM Transactions on Architecture and Code Optimization10.1145/304667814:1(1-25)Online publication date: 21-Mar-2017
    • (2015)An efficient algorithm for on-the-fly data race detection using an epoch-based techniqueScientific Programming10.1155/2015/2058272015(13-13)Online publication date: 1-Jan-2015
    • (2009)Fast TrackProceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO.2009.18(157-168)Online publication date: 22-Mar-2009
    • (2007)Healing data races on-the-flyProceedings of the 2007 ACM workshop on Parallel and distributed systems: testing and debugging10.1145/1273647.1273658(54-64)Online publication date: 9-Jul-2007
    • (2007)Software behavior oriented parallelizationACM SIGPLAN Notices10.1145/1273442.125076042:6(223-234)Online publication date: 10-Jun-2007
    • (2007)Software behavior oriented parallelizationProceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1250734.1250760(223-234)Online publication date: 15-Jun-2007
    • (2005)A serializability violation detector for shared-memory server programsProceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation10.1145/1065010.1065013(1-14)Online publication date: 12-Jun-2005
    • (2005)A serializability violation detector for shared-memory server programsACM SIGPLAN Notices10.1145/1064978.106501340:6(1-14)Online publication date: 12-Jun-2005
    • (2004)On-the-fly detection of access anomaliesACM SIGPLAN Notices10.1145/989393.98942639:4(313-327)Online publication date: 1-Apr-2004
    • Show More Cited By

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media