Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/231379.231432acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free access

Replay for concurrent non-deterministic shared-memory applications

Published: 01 May 1996 Publication History

Abstract

Replay of shared-memory program execution is desirable in many domains including cyclic debugging, fault tolerance and performance monitoring. Past approaches to repeatable execution have focused on the problem of re-executing the shared-memory access patterns in parallel programs. With the proliferation of operating system supported threads and shared memory for uniprocessor programs, there is a clear need for efficient replay of concurrent applications. The solutions for parallel systems can be performance prohibitive when applied to the uniprocessor case. We present an algorithm, called the repeatable scheduling algorithm, combining scheduling and instruction counts to provide an invariant for efficient, language independent replay of concurrent shared-memory applications. The approach is shown to have trace overheads that are independent of the amount of sharing that takes place. An implementation for cyclic debugging on Mach 3.0 is evaluated and benchmarks show typical performance overheads of around 10%. The algorithm implemented is compared with optimal event-based tracing and shown to do better with respect to the number of events monitored or number of events logged, in most cases by several orders of magnitude.

References

[1]
A. Aho, B. Kernighan and P. Weinberger, "The AWK Programming Language," Addison-Wesley, Reading, MA, 1988.
[2]
T. A. Cargill and B. N. Locanthi, "Cheap Hardware Support for Software Debugging and Profiling," in Proc. Syrup. on Architectural Support for Prog. Lang. and Operating Syst., Palo Alto, CA, Oct. 1987, pp. 82-83.
[3]
R. H. Carver and K. C. Tai, "Reproducible Testing of Concurrent Programs Based on Shared Variables," in Proc. 6th Int. Conf. on Distributed Computing Systems, Boston, MA., May 1986, pp. 428-432.
[4]
H. Custer, "Inside Windows NT," Microsoft Press, Redmond, WA, 1993.
[5]
P. Dodd and C. Ravishankar, "Monitoring and Debugging Distributed Real-Time Programs," Software Practice and Experience, Vol. 22(10), Oct. 1992, pp. 863- 877.
[6]
M. Johnson, "Some Requirements for Architectural Support of Software Debugging," in Proc. of the Syrup. on Architectural Support for Prog. Lang. and Operating $yst., Palo Alto, CA, Mar. 1982, pp. 140-148.
[7]
A. King, "Inside Windows 95," Microsoft Press, Redmond, WA, 1994.
[8]
T. j. LeBlanc and J. M. Mellor-Crummey, "Debugging Parallel Programs with Instant Replay." IEEE Trans. on Computers, Apr. 1987, pp. 471-482.
[9]
C. Lin and R. LeBlanc, "Event-Based Debugging of Object/Action Programs," in Proc. of the A CM SiG- PLAN/SIGOPS Workshop on Parallel and Distributed Debugging, 1988, pp. 23-34.
[10]
C. E. McDowell and D. P. Helbold, "Debugging Concurrent Programs," A CM Computing Surveys, Dec. 1989, pp. 593-622.
[11]
J. M. Mellor-Crummey and T. J. LeBlanc, "A Software Instruction Counter," in Proc. Symp. on Architectural Support for Prog. Lang. and Operating Syst., Palo Alto, CA, Apr. 1989, pp. 78-86.
[12]
R. Netzer, "Optimal Tracing and Replay for Debugging Shared-Memory Parallel Programs," in Proc. A CM/ ONR Workshop on Parallel and Distributed Debugging, May 1993, pp. 1-11.
[13]
R. Netzer and B. Miller, "On the Complexity of Event Ordering for Shared-Memory Parallel Program Executions,'' in Proc. Int. Conf. on Parallel Processing, 1990, pp. 93-97.
[14]
D. Pan and M. Linton, "Supporting Reverse Execution of Parallel Programs," in Proc. SIGPLAN/SIGOPS Workshop on Parallel and Distributed Debugging, May 1988, pp. 124-129.
[15]
M. L. Powell, et. al., "SunOS Mulfithreaded Architecture,'' Sun Microsystems White Paper, Sun Microsystems, Cupertino, CA, June 1995.
[16]
R. Rashid, et. al., "Mach: A Foundation for Open Systems,'' in Proc. 2nd Workshop on Workstations and Operating Syst., Sept. 1989, pp. 27-29.
[17]
M. Russinovich and B. Cogswell, "Operating System Support for Replay of Concurrent Non-Deterministic Shared Memory Applications," in Bulletin of the Technical Committee on Operating Systems and Applications Environments (TCOS), IEEE Computer Society, Winter 1995, Vol. 7, No. 4, pp. 15-19.
[18]
K. C. Tai, R. H. Carver, and E. E. Obaid, "Debugging Concurrent Ada Programs by Deterministic Execution,'' IEEE Trans. on Software Engineering, Jan. 1991, pp. 45-63.
[19]
S. C. Woo, M. Ohara, E. Torrie, J. P. Singh, and A. Gupta, "The SPLASH-2 Programs' Characterization and Methodological Considerations," in Proc. of the 22nd International Symposium on Computer Architecture, June 1995, pp. 24-36.

Cited By

View all
  • (2021)Verifying IO Synchronization from MPI Traces2021 IEEE/ACM Sixth International Parallel Data Systems Workshop (PDSW)10.1109/PDSW54622.2021.00012(41-46)Online publication date: Nov-2021
  • (2017)Taming Parallelism in a Multi-Variant Execution EnvironmentProceedings of the Twelfth European Conference on Computer Systems10.1145/3064176.3064178(270-285)Online publication date: 23-Apr-2017
  • (2017)The Information Needed for Reproducing Shared Memory ExperimentsEuro-Par 2016: Parallel Processing Workshops10.1007/978-3-319-58943-5_48(596-608)Online publication date: 28-May-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
May 1996
300 pages
ISBN:0897917952
DOI:10.1145/231379
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 1996

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. instruction counter
  2. non-determinism
  3. repeatable execution
  4. shared memory

Qualifiers

  • Article

Conference

PLDI96
Sponsor:
PLDI96: Programming Language Design and Implementation
May 21 - 24, 1996
Pennsylvania, Philadelphia, USA

Acceptance Rates

PLDI '96 Paper Acceptance Rate 28 of 112 submissions, 25%;
Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)207
  • Downloads (Last 6 weeks)47
Reflects downloads up to 11 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2021)Verifying IO Synchronization from MPI Traces2021 IEEE/ACM Sixth International Parallel Data Systems Workshop (PDSW)10.1109/PDSW54622.2021.00012(41-46)Online publication date: Nov-2021
  • (2017)Taming Parallelism in a Multi-Variant Execution EnvironmentProceedings of the Twelfth European Conference on Computer Systems10.1145/3064176.3064178(270-285)Online publication date: 23-Apr-2017
  • (2017)The Information Needed for Reproducing Shared Memory ExperimentsEuro-Par 2016: Parallel Processing Workshops10.1007/978-3-319-58943-5_48(596-608)Online publication date: 28-May-2017
  • (2015)Deterministic ReplayACM Computing Surveys10.1145/279007748:2(1-47)Online publication date: 24-Sep-2015
  • (2014)Eidetic systemsProceedings of the 11th USENIX conference on Operating Systems Design and Implementation10.5555/2685048.2685090(525-540)Online publication date: 6-Oct-2014
  • (2014)SymCrashProceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering10.1145/2642937.2642993(791-802)Online publication date: 15-Sep-2014
  • (2013)A Case for Dynamic Reverse-code Generation to Debug Non-deterministic ProgramsElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.129.27129(419-428)Online publication date: 19-Sep-2013
  • (2013)QuickRecACM SIGARCH Computer Architecture News10.1145/2508148.248597741:3(643-654)Online publication date: 23-Jun-2013
  • (2013)CyrusACM SIGPLAN Notices10.1145/2499368.245113848:4(193-206)Online publication date: 16-Mar-2013
  • (2013)CyrusACM SIGARCH Computer Architecture News10.1145/2490301.245113841:1(193-206)Online publication date: 16-Mar-2013
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media