Minimizing the log size for execution replay of shared-memory programs
Execution replay is an essential part of parallel debugging. Since explicitly parallel programs can be non-repeatable, trace-and-replay mechanisms have been proposed to support the debugging task.
Recently, we introduced a novel trace and replay mechanism for shared-memory programs, based on scalar logical clocks, and producing smaller traces than previous trace and replay mechanisms. In this paper, we further improve this scheme, by improving the matching of the logical clocks with real-time. We show that by doing so, we can significantly decrease the amount of information that has to be recorded.
KeywordsParallel Debugging Execution Replay Logical Clocks
Unable to display preview. Download preview PDF.
- 1.K.M.R. Audenaert and L.J. Levrouw. Interrupt replay: a debugging method for parallel programs with interrupts. Microprocessors and Microsystems. Accepted for publication.Google Scholar
- 2.David F. Bacon and Seth Copen Goldstein. Hardware-assisted replay of multi-processor programs. In Proceedings of the ACM/ONR Workshop on Parallel and Distributed Debugging, pages 194–206, Santa Cruz, CA, May 1991.Google Scholar
- 3.Richard H. Carver and Kuo-Chung Tai. Reproducible testing of concurrent programs based on shared variables. In Proceedings of the Sixth International Conference on Distributed Computing Systems, pages 428–433, 1986.Google Scholar
- 4.P.J. Courtois, F. Heymans, and D.L. Parnas. Concurrent control with readers and writers. Communications of the ACM, 14:667–668, October 1971.Google Scholar
- 5.Anne Dinning and Edith Schonberg. An empirical comparison of monitoring algorithms for access anomaly detection. In Proceedings of the Second ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 1–10, Seattle WA, March 1990.Google Scholar
- 6.Leslie Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558–565, july 1978.Google Scholar
- 7.Thomas J. LeBlanc and John M. Mellor-Crummey. Debugging parallel programs with Instant Replay. IEEE Transactions on Computers, C-36(4):471–482, April 1987.Google Scholar
- 8.Luk J. Levrouw and Koenraad M. Audenaert. An efficient record-replay mechanism for shared memory programs. In Proceedings Euromicro Workshop on Parallel and Distributed Processing, pages 169–176. IEEE Computer Society Press, January 1993.Google Scholar
- 9.Luk J. Levrouw, Koenraad M. Audenaert, and Jan M. Van Campenhout. Execution replay with compact logs for shared-memory programs. In C. Girault, editor, Applications in Parallel and Distributed Computing, IFIP Transactions A-44: Computer Science and Technology, pages 125–134. Elsevier Science B.V., North-Holland, 1994.Google Scholar
- 10.Luk J. Levrouw, Koenraad M. Audenaert, and Jan M. Van Campenhout. A new trace and replay system for shared memory programs based on lamport clocks. In Proceedings of the Second Euromicro Workshop on Parallel and Distributed Processing, pages 471–478. IEEE Computer Society Press, January 1994.Google Scholar
- 11.Friedemann Mattern. Virtual time and global states of distributed systems. In M. Cosnard et al., editor, Parallel and Distributed Algorithms, pages 215–226. Elsevier Science Publishers B.V., North-Holland, 1989.Google Scholar
- 12.Robert H.B. Netzer. Optimal tracing and replay for debugging shared-memory parallel programs. In Proceedings ACM/ONR Workshop on Parallel and Distributed Debugging, pages 1–11, May 1993.Google Scholar
- 13.Douglas Z. Pan and Mark A. Linton. Supporting reverse execution of parallel programs. ACM SIGPLAN Notices, 24(1):124–129, January 1989.Google Scholar