Advertisement

Toward a Formal Semantic Framework for Deterministic Parallel Programming

  • Li Lu
  • Michael L. Scott
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6950)

Abstract

Deterministic parallelism has become an increasingly attractive concept: a deterministic parallel program may be easier to construct, debug, understand, and maintain. However, there exist many different definitions of “determinism” for parallel programming. Many existing definitions have not yet been fully formalized, and the relationships among these definitions are still unclear. We argue that formalism is needed, and that history-based semantics—as used, for example, to define the Java and C++ memory models—provides a useful lens through which to view the notion of determinism. As a first step, we suggest several history-based definitions of determinism. We discuss some of their comparative advantages, prove containment relationships among them, and identify programming idioms that ensure them. We also propose directions for future work.

Keywords

Memory Model Data Race Output Operation Program Order Synchronization Operation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    Adve, V., Ceze, L., Ford, B.: Organizers. In: 2nd Workshop on Determinism and Correctness in Parallel Programming, Newport Beach, CA (March 2011)Google Scholar
  2. [2]
    Adve, S.V., Hill, M.D.: Weak Ordering—A New Definition. In: 17th Intl. Symp. on Computer Architecture, Seattle, WA (May 1990)Google Scholar
  3. [3]
    Allen, M.D., Sridharan, S., Sohi, G.S.: Serialization Sets: A Dynamic Dependence-Based Parallel Execution Model. In: 14th ACM Symp. on Principles and Practice of Parallel Programming, Raleigh, NC (February 2009)Google Scholar
  4. [4]
    Aviram, A., Weng, S.-C., Hu, S., Ford, B.: Efficient System-Enforced Deterministic Parallelism. In: 9th Symp. on Operating Systems Design and Implementation, Vancouver, BC, Canada (October 2010)Google Scholar
  5. [5]
    Bergan, T., Anderson, O., Devietti, J., Ceze, L., Grossman, D.: CoreDet: A Compiler and Runtime System for Deterministic Multithreaded Execution. In: 15th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, Pittsburgh, PA (March 2010)Google Scholar
  6. [6]
    Bergan, T., Hunt, N., Ceze, L., Gribble, S.D.: Deterministic Process Groups in dOS. In: 9th Symp. on Operating Systems Design and Implementation, Vancouver, BC, Canada (October 2010)Google Scholar
  7. [7]
    Bergan, T., Devietti, J., Hunt, N., Ceze, L.: The Deterministic Execution Hammer: How Well Does It Actually Pound Nails? In: 2nd Workshop on Determinism and Correctness in Parallel Programming, Newport Beach, CA (March 2011)Google Scholar
  8. [8]
    Berger, E., Yang, T., Liu, T., Novark, G.: Grace: Safe Multithreaded Programming for C/C++. In: OOPSLA 2009 Conf. Proc., Orlando, FL (October 2009)Google Scholar
  9. [9]
    Blundell, C., Lewis, E.C., Martin, M.M.K.: Deconstructing Transactional Semantics: The Subtleties of Atomicity. In: 4th Workshop on Duplicating, Deconstructing, and Debunking, Madison, WI (June 2005)Google Scholar
  10. [10]
    Bocchino Jr., R.L., Adve, V.S., Dig, D., Adve, S., Heumann, S., Komuravelli, R., Overbey, J., Simmons, P., Sung, H., Vakilian, M.: A Type and Effect System for Deterministic Parallel Java. In: OOPSLA 2009 Conf. Proc., Orlando, FL (October 2009)Google Scholar
  11. [11]
    Boehm, H.-J., Adve, S.V.: Foundations of the C++ Concurrency Memory Model. In: SIGPLAN 2008 Conf. on Programming Language Design and Implementation, Tucson, AZ (June 2008)Google Scholar
  12. [12]
    Budimlić, Z., Burke, M., Cavé, V., Knobe, K., Lowney, G., Newton, R., Palsberg, J., Peixotto, D., Sarkar, V., Schlimbach, F., Taşirlar, S.: Concurrent Collections. Journal of Scientific Programming 18(3–4) (August 2010)Google Scholar
  13. [13]
    Ceze, L., Adve, V.: Organizers. In: Workshop on Deterministic Multiprocessing and Parallel Programming, Seattle, WA (November-December 2009)Google Scholar
  14. [14]
    Chazan, C., Miranker, W.: Chaotic Relaxation. Linear Algebra and Its Applications 2, 199–222 (1969)MathSciNetCrossRefzbMATHGoogle Scholar
  15. [15]
    Dalessandro, L., Scott, M.L., Spear, M.F.: Transactions as the Foundation of a Memory Consistency Model. In: 24th Intl. Symp. on Distributed Computing, Cambridge, MA (September 2010); Previously Computer Science TR 959, Univ. of Rochester (July 2010)Google Scholar
  16. [16]
    Devietti, J., Lucia, B., Ceze, L., Oskin, M.: DMP: Deterministic Shared Memory Multiprocessing. In: 14th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, Washington, DC (March 2009)Google Scholar
  17. [17]
    Emrath, P.A., Padua, D.A.: Automatic Detection of Nondeterminacy in Parallel Programs. In: ACM SIGPLAN/SIGOPS Workshop on Parallel and Distributed Debugging, Madison, WI (May 1988)Google Scholar
  18. [18]
    Halstead Jr, R.H.: Multilisp: A Language for Concurrent Symbolic Computation. ACM Trans. on Programming Languages and Systems 7(4), 501–538 (1985)CrossRefzbMATHGoogle Scholar
  19. [19]
    Herlihy, M.P., Wing, J.M.: Linearizability: A Correctness Condition for Concurrent Objects. ACM Trans. on Programming Languages and Systems 12(3), 463–492 (1990)CrossRefGoogle Scholar
  20. [20]
    Hower, D.R., Hill, M.D.: Rerun: Exploiting Episodes for Lightweight Memory Race Recording. In: 35th Intl. Symp. on Computer Architecture, Beijing, China (June 2008)Google Scholar
  21. [21]
    Karp, R.M., Miller, R.E.: Properties of a Model for Parallel Computations: Determinacy, Termination, Queueing. SIAM Journal on Applied Mathematics 14(6), 1390–1411 (1966)MathSciNetCrossRefzbMATHGoogle Scholar
  22. [22]
    Manson, J., Pugh, W., Adve, S.: The Java Memory Model. In: 32nd ACM Symp. on Principles of Programming Languages, Long Beach, CA (January 2005)Google Scholar
  23. [23]
    Midkiff, S., Pai, V., Bennett, D.: Organizers. In: Workshop on Integrating Parallelism Throughout the Undergraduate Computing Curriculum, San Antonio, TX (February 2011)Google Scholar
  24. [24]
    Montesinos, P., Ceze, L., Torrellas, J.: DeLorean: Recording and Deterministically Replaying Shared-Memory Multiprocessor Execution Efficiently. In: 35th Intl. Symp. on Computer Architecture, Beijing, China (June 2008)Google Scholar
  25. [25]
    Netzer, R.H.B., Miller, B.P.: What Are Race Conditions? Some Issues and Formalizations. ACM Letters on Programming Languages and Systems 1(1), 74–88 (1992)CrossRefGoogle Scholar
  26. [26]
    Olszewski, M., Ansel, J., Amarasinghe, S.: Kendo: Efficient Deterministic Multithreading in Software. In: 14th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, Washington, DC (March 2009)Google Scholar
  27. [27]
    Papadimitriou, C.H.: The Serializability of Concurrent Database Updates. Journal of the ACM 26(4), 631–653 (1979)MathSciNetCrossRefzbMATHGoogle Scholar
  28. [28]
    Shavit, N.: Organizer. In: Workshop on Directions in Multicore Programming Education, Washington, DC (March 2009)Google Scholar
  29. [29]
    Spear, M.F., Dalessandro, L., Marathe, V.J., Scott, M.L.: Ordering-Based Semantics for Software Transactional Memory. In: 12th Intl. Conf. on Principles of Distributed Systems, Luxor, Egypt (December 2008)Google Scholar
  30. [30]
    Steele Jr., G.L., Saraswat, V.A.: Organizers. In: Workshop on Curricula for Concurrency, Orlando, FL (October 2009)Google Scholar
  31. [31]
    Veeraraghavan, K., Lee, D., Wester, B., Ouyang, J., Chen, P., Flinn, J., Narayanasamy, S.: DoublePlay: Parallelizing Sequential Logging and Replay. In: 16th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, Newport Beach, CA (March 2011)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Li Lu
    • 1
  • Michael L. Scott
    • 1
  1. 1.Computer Science DepartmentUniversity of RochesterRochesterUSA

Personalised recommendations