skip to main content
10.1145/2384616.2384670acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Execution privatization for scheduler-oblivious concurrent programs

Authors Info & Claims
Published:19 October 2012Publication History

ABSTRACT

Making multithreaded execution less non-deterministic is a promising solution to address the difficulty of concurrent programming plagued by the non-deterministic thread scheduling. In fact, a vast category of concurrent programs are scheduler-oblivious: their execution is deterministic, regardless of the scheduling behavior. We present and formally prove a fundamental observation of the privatizability property for scheduler-oblivious programs, that paves the theoretical foundation for privatizing shared data accesses on a path segment. With privatization, the non-deterministic thread interleavings on the privatized accesses are isolated and as the consequence many concurrency problems are alleviated. We further present a path and context sensitive privatization algorithm that safely privatizes the program without introducing any additional program behavior. Our evaluation results show that the privatization opportunity pervasively exists in real world large complex concurrent systems. Through privatization, several real concurrency bugs are fixed and notable performance improvements are also achieved on benchmarks.

References

  1. Ali-Reza Adl-Tabatabai, Brian T. Lewis, Vijay Menon, Brian R. Murphy, Bratin Saha, and Tatiana Shpeisman. Compiler and runtime support for efficient software transactional memory. In PLDI, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Sarita V. Adve and Mark D. Hill. Weak ordering--a new definition. SIGARCH Comput. Archit. News, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Hagit Attiya, Rachid Guerraoui, Danny Hendler, Petr Kuznetsov, Maged M. Michael, and Martin Vechev. Laws of order: expensive synchronization in concurrent algorithms cannot be eliminated. In POPL, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Amittai Aviram, Shu-Chun Weng, Sen Hu, and Bryan Ford. Efficient system-enforced deterministic parallelism. In OSDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Tom Bergan, Owen Anderson, Joseph Devietti, Luis Ceze, and Dan Grossman. Coredet: a compiler and runtime system for deterministic multithreaded execution. In ASPLOS, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Tom Bergan, Nicholas Hunt, Luis Ceze, and Steven D. Gribble. Deterministic process groups in dos. In OSDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Emery D. Berger, Ting Yang, Tongping Liu, and Gene Novark. Grace: safe multithreaded programming for c/cGoogle ScholarGoogle Scholar
  8. . In OOPSLA, 2009.Google ScholarGoogle Scholar
  9. Philip A. Bernstein and Nathan Goodman. Concurrency control in distributed database systems. ACM Comput. Surv., 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Robert L. Bocchino, Jr., Vikram S. Adve, Sarita V. Adve, and Marc Snir. Parallel programming must be deterministic by default. In HotPar, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Robert L. Bocchino, Jr., Vikram S. Adve, Danny Dig, Sarita V. Adve, Stephen Heumann, Rakesh Komuravelli, Jeffrey Overbey, Patrick Simmons, Hyojin Sung, and Mohsen Vakilian. A type and effect system for deterministic parallel java. In OOPSLA, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Michael D. Bond, Graham Z. Baker, and Samuel Z. Guyer. Breadcrumbs: efficient context sensitivity for dynamic bug detection analyses. In PLDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Jacob Burnim and Koushik Sen. Asserting and checking determinism for multithreaded programs. In ESEC/FSE, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Heming Cui, Jingyue Wu, John Gallagher, Huayang Guo, and Junfeng Yang. Efficient deterministic multithreading through schedule relaxation. In SOSP, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Joseph Devietti, Brandon Lucia, Luis Ceze, and Mark Oskin. Dmp: deterministic shared memory multi-processing. In ASPLOS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Joseph Devietti, Jacob Nelson, Tom Bergan, Luis Ceze, and Dan Grossman. Rcdc: a relaxed consistency deterministic computer. In ASPLOS, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Cormac Flanagan and Stephen N Freund. Atomizer: a dynamic atomicity checker for multithreaded programs. In POPL, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Manish Gupta. On privatization of variables for data-parallel execution. In IPPS, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Maurice Herlihy and J. Eliot B. Moss. Transactional memory: Architectural support for lock-free data structures. In ISCA, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Derek R. Hower and Mark D. Hill. Rerun: Exploiting episodes for lightweight memory race recording. In ISCA, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Jeff Huang, Peng Liu, and Charles Zhang. LEAP: Lightweight deterministic multi-processor replay of concurrent Java programs. In FSE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Jeff Huang and Charles Zhang. An efficient static trace simplification technique for debugging concurrent programs. In SAS, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Nicholas Jalbert and Koushik Sen. A trace simplification technique for effective debugging of concurrent programs. In FSE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Guoliang Jin, Linhai Song, Wei Zhang, Shan Lu, and Ben Liblit. Automated atomicity-violation fixing. In PLDI, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. L. Lamport. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput., 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Zhiyuan Li, Jenn-Yuan Tsai, Xin Wang, Pen-Chung Yew, and Bess Zheng. Compiler techniques for concurrent multithreading with hardware speculation support. In LCPC, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Shan Lu, Joseph Tucek, Feng Qin, and Yuanyuan Zhou. Avio: detecting atomicity violations via access interleaving invariants. In ASPLOS, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Brandon Lucia, Joseph Devietti, Karin Strauss, and Luis Ceze. Atom-aid: Detecting and surviving atomicity violations. In ISCA, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Jeremy Manson, William Pugh, and Sarita V. Adve. The java memory model. In POPL, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Dan Marino, Abhayendra Singh, Todd Millstein, Madan Musuvathi, and Satish Narayanasamy. Drfx: A simple and efficient memory model for concurrent programming languages. In PLDI, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Pablo Montesinos, Luis Ceze, and Josep Torrellas. Delorean: Recording and deterministically replaying shared-memory multi-processor execution efficiently. In ISCA, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Soyeon Park, Shan Lu, and Yuanyuan Zhou. Ctrigger: exposing atomicity violation bugs from their hiding places. In ASPLOS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Sriram Rajamani, G. Ramalingam, Venkatesh Prasad Ranganath, and Kapil Vaswani. Isolator: dynamically ensuring isolation in comcurrent programs. In ASPLOS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Paruj Ratanaworabhan, Martin Burtscher, Darko Kirovski, Benjamin Zorn, Rahul Nagpal, and Karthik Pattabiraman. Detecting and tolerating asymmetric races. In PPoPP, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Nir Shavit and Dan Touitou. Software transactional memory. In PODC, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. CORPORATE SPARC International, Inc. The SPARC architecture manual (version 9). 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. William N. Sumner, Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. Precise calling context encoding. In ICSE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Jenn-Yuan Tsai, Zhenzhen Jiang, and Pen-Chung Yew. Program optimization for concurrent multithreaded architectures. In LCPC, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Mandana Vaziri, Frank Tip, and Julian Dolby. Associating synchronization constraints with data in an object-oriented language. In POPL, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Kaushik Veeraraghavan, Peter M. Chen, Jason Flinn, and Satish Narayanasamy. Detecting and surviving data races using complementary schedules. In SOSP, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Jaroslavv Sevcık and David Aspinall. On validity of program transformations in the java memory model. In ECOOP, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Liqiang Wang and Scott D. Stoller. Runtime analysis of atomicity for multithreaded programs. TSE, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Dasarath Weeratunge, Xiangyu Zhang, and Suresh Jaganathan. Accentuating the positive: Atomicity inference and enforcement using correct executions. In OOPSLA, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Peng Wu, Maged M. Michael, Christoph von Praun, Takuya Nakaike, Rajesh Bordawekar, Harold W. Cain, Calin Cascaval, Siddhartha Chatterjee, Stefanie Chiras, Rui Hou, Mark Mergen, Xiaowei Shen, Michael F. Spear, Hua Yong Wang, and Kun Wang. Compiler and runtime techniques for software transactional memory optimization. Concurr. Comput. : Pract. Exper., 21, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Min Xu, Rastislav Bodık, and Mark D. Hill. A serializability violation detector for shared-memory server programs. In PLDI, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Jie Yu and Satish Narayanasamy. Tolerating concurrency bugs using transactions as lifeguards. In MICRO, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Execution privatization for scheduler-oblivious concurrent programs

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applications
      October 2012
      1052 pages
      ISBN:9781450315616
      DOI:10.1145/2384616
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 47, Issue 10
        OOPSLA '12
        October 2012
        1011 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2398857
        Issue’s Table of Contents

      Copyright © 2012 ACM

      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]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 19 October 2012

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate268of1,244submissions,22%

      Upcoming Conference

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader