This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
DMP: Deterministic Shared-Memory Multiprocessing
January/February 2010 (vol. 30 no. 1)
pp. 40-49
Joseph Devietti, University of Washington
Brandon Lucia, University of Washington
Luis Ceze, University of Washington
Mark Oskin, University of Washington

Shared-memory multicore and multiprocessor systems are nondeterministic, which frustrates debugging and complicates testing of multithreaded code, impeding parallel programming's widespread adoption. The authors propose fully deterministic shared-memory multiprocessing that not only enhances debugging by offering repeatability by default, but also improves the quality of testing and the deployment of production code. They show that determinism can be provided with little performance cost on future hardware.

1. D.F. Bacon and S.C. Goldstein, "Hardware-Assisted Replay of Multiprocessor Programs," Proc. 1991 ACM/ONR Workshop Parallel and Distributed Debugging, ACM Press, 1991, pp. 194-206.
2. P. Montesinos, L. Ceze, and J. Torrellas, "DeLorean: Recording and Deterministically Replaying Shared-Memory Multiprocessor Execution Efficiently," Proc. 35th Int'l Symp. Computer Architecture (ISCA 08), IEEE CS Press, 2008, pp. 289-300.
3. S. Narayanasamy, C. Pereira, and B. Calder, "Recording Shared Memory Dependencies Using Strata," Proc. 12th Int'l Conf. Architectural Support for Programming Languages and Operating Systems (ASPLOS 06), ACM Press, 2006, pp. 229-240.
4. M. Ronsee and K. De Bosschere, "RecPlay: A Fully Integrated Practical Record/Replay System," ACM Trans. Computer Systems, vol. 17, no. 2, 1999, pp. 133-152.
5. M. Xu, R. Bodik, and M.D. Hill, "A 'Flight Data Recorder' for Enabling Full-System Multiprocessor Deterministic Replay," Proc. 30th Int'l Symp. Computer Architecture (ISCA 03), IEEE CS Press, 2003, pp. 122-135.
6. T. Bergan et al., "CoreDet: A Compiler and Runtime System for Deterministic Multithreaded Execution," to be presented at 15th Int'l Conf. Architectural Support for Programming Languages and Operating Systems, 2010, www.cs.washington.edu/homes/tbergan/papers asplos10-coredet.pdf.
7. L. Hammond et al., "Transactional Memory Coherence and Consistency," Proc. 31st Int'l Symp. Computer Architecture (ISCA 04), IEEE CS Press, 2004, pp. 102-114.
8. M. Herlihy and J.E.B. Moss, "Transactional Memory: Architectural Support for Lock-Free Data Structures," Proc. 20th Int'l Symp. Computer Architecture (ISCA 93), IEEE CS Press, 1993, pp. 289-300.
9. J. Devietti et al., "DMP: Deterministic Shared Memory Multiprocessing," Proc. 14th Int'l Conf. Architectural Support for Programming Languages and Operating Systems (ASPLOS 09), ACM Press, 2009, pp. 85-96.
10. S. Gopal et al., "Speculative Versioning Cache," Proc. 4th Int'l Symp. High-Performance Computer Architecture (HPCA 98), IEEE CS Press, 1998, pp. 195-205.
11. C.K. Luk et al., "Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation," Proc. 2005 ACM SIGPLAN Conf. Programming Language Design and Implementation, ACM Press, 2005, pp. 190-200.
12. S. Woo et al., "The SPLASH-2 Programs: Characterization and Methodological Considerations," Proc. 22nd Int'l Symp. Computer Architecture (ISCA 95), IEEE CS Press, 1995, pp. 24-36.
13. C. Bienia et al., "The PARSEC Benchmark Suite: Characterization and Architectural Implications," Proc. 17th Int'l Conf. Parallel Architectures and Compilation Techniques, ACM Press, 2008, pp. 72-81.
1. J.-D. Choi and H. Srinivasan, "Deterministic Replay of Java Multithreaded Applications," Proc. SIGMETRICS Symp. Parallel and Distributed Tools, ACM Press, 1998, pp. 48-59.
2. T.J. Leblanc and J.M. Mellor-Crummey, "Debugging Parallel Programs with Instant Replay," IEEE Trans. Computers, vol. 36, no. 4, 1987, pp. 471-482.
3. M. Ronsee and K. De Bosschere, "RecPlay: A Fully Integrated Practical Record/Replay System," ACM Transactions on Computer Systems, vol. 17, no. 2, 1999, pp. 133-152.
4. D.F. Bacon and S.C. Goldstein, "Hardware-Assisted Replay of Multiprocessor Programs," Proc. 1991 ACM/ONR Workshop Parallel and Distributed Debugging, ACM Press, 1991, pp. 194-206.
5. S. Narayanasamy, G. Pokam, and B. Calder, "BugNet: Continuously Recording Program Execution for Deterministic Replay Debugging," Proc. 32nd Int'l Symp. Computer Architecture (ISCA 05), IEEE CS Press, 2005, pp. 284-295.
6. M. Xu, R. Bodik, and M.D. Hill, "A 'Flight Data Recorder' for Enabling Full-System Multiprocessor Deterministic Replay," Proc. 30th Int'l Symp. Computer Architecture (ISCA 03), IEEE CS Press, 2003, pp. 122-135.
7. S. Narayanasamy, C. Pereira, and B. Calder, "Recording Shared Memory Dependencies Using Strata," Proc. 12th Int'l Conf. Architectural Support for Programming Languages and Operating Systems (ASPLOS 06), ACM Press, 2006, pp. 229-240.
8. M. Xu, M. Hill, and R. Bodik, "A Regulated Transitive Reduction (RTR) for Longer Memory Race Recording," Proc. 12th Int'l Conf. Architectural Support for Programming Languages and Operating Systems (ASPLOS 06), ACM Press, 2006, pp. 49-60.
9. D.R. Hower and M.D. Hill, "Rerun: Exploiting Episodes for Lightweight Memory Race Recording," Proc. 35th Int'l Symp. Computer Architecture (ISCA 08), IEEE CS Press, 2008, pp. 265-276.
10. P. Montesinos, L. Ceze, and J. Torrellas, "DeLorean: Recording and Deterministically Replaying Shared-Memory Multiprocessor Execution Efficiently," Proc. 35th Int'l Symp. Computer Architecture (ISCA 08), IEEE CS Press, 2008, pp. 289-300.
11. M. Olszewski, J. Ansel, and S. Amarasinghe, "Kendo: Efficient Deterministic Multithreading in Software," Proc. 14th Int'l Conf. Architectural Support for Programming Languages and Operating Systems (ASPLOS 09), ACM Press, 2009, pp. 97-108.
12. W. Thies, M. Karczmarek, and S.P. Amarasinghe, "StreamIt: A Language for Streaming Applications," Proc. 11th Int'l Conf. Compiler Construction, LNCS 2304, Springer, 2002, pp. 179-196.
13. M.C. Rinard and M.S. Lam, "The Design, Implementation, and Evaluation of Jade," ACM Trans. Programming Languages and Systems, vol. 20, no. 3, 1998, pp. 483-545.
14. R.L. BocchinoJr. et al., "A Type and Effect System for Deterministic Parallel Java," Proc. 24th ACM SIGPLAN Conf. Object Oriented Programming Systems Languages and Applications (OOPSLA 09), 2009, pp. 97-116.

Index Terms:
multiprocessors, determinism, debugging, reliability
Citation:
Joseph Devietti, Brandon Lucia, Luis Ceze, Mark Oskin, "DMP: Deterministic Shared-Memory Multiprocessing," IEEE Micro, vol. 30, no. 1, pp. 40-49, Jan.-Feb. 2010, doi:10.1109/MM.2010.14
Usage of this product signifies your acceptance of the Terms of Use.