Deterministic Parallel Java: Towards Deterministic-by-default Parallel Programming

Subscribers:
344,000
Published on ● Video Link: https://www.youtube.com/watch?v=c9DH-oi101s



Duration: 1:18:40
139 views
2


One important feature of a parallel programming model is deterministic semantics: that is, a program produces the same output on every execution with a given input, regardless of the parallel schedule chosen. Determinism makes parallel programs much easier to write, understand, debug, and maintain. Further, many (though not all) parallel programs are, in fact, intended to have deterministic semantics. However, general-purpose languages, particularly those that allow arbitrary updates to shared data, typically do not guarantee determinism, leaving the burden on the programmer to ensure that the program is correctly synchronized. In this talk, I will present Deterministic Parallel Java (DPJ), an extension of the Java programming language that guarantees deterministic semantics in the presence of aliasing and updates to shared mutable objects. An important consequence of deterministic semantics is that a working sequential program needs no further testing after parallelization with DPJ. In DPJ, the programmer partitions the heap into regions and annotates method definitions with read and write effects on those regions. The programmer also explicitly marks parallel tasks and synchronization points. The compiler checks that the method effects are correctly summarized, and that the program is correctly synchronized to ensure determinism. I will describe the core language features, illustrate them with examples, and describe the results of an initial evaluation of the language. I will also describe ongoing work, including features we plan to add to the language.




Other Videos By Microsoft Research


2016-09-06Panta Rhei: Database Evolution
2016-09-06From Company Man, Family Dinners & Affluence to Home Office, Blackberry Moms and Economic Anxiety
2016-09-06Iterative Methods in Combinatorial Optimization
2016-09-06Inventing the Future: Humanity's Future in Space
2016-09-06Mixing in Time and Space
2016-09-06Abstraction-Guided Hybrid Symbolic Execution for Testing Concurrent Systems
2016-09-06The Church-Turing Thesis: Story and Recent Progress
2016-09-06Investigating the Fundamental Network Burden of Distributed Cooperation
2016-09-06Techniques for combinatorial optimization: Spectral Graph Theory and Semidefinite Programming
2016-09-06Visual Search for an Object in a 3D Environment using a Mobile Robot
2016-09-06Deterministic Parallel Java: Towards Deterministic-by-default Parallel Programming
2016-09-06A Calculus of Atomic Actions
2016-09-06The Edge of Medicine: The Technology that will Change Our Lives
2016-09-06Approximating the optimum: Efficient algorithms and their limits
2016-09-06Modeling and Enacting Electronic Contracts
2016-09-06eScience: Closing Keynote - eScience and the Fourth Paradigm: Supporting Data-centric Science
2016-09-06eScience: Plenary, Keynote - Digital Repositories, Archives and Infrastructures
2016-09-06eScience: Closing Keynote - Distributed and Parallel Programming Environments and their Performance
2016-09-06eScience: Birds of a Feather Session - eScience Inspired Education
2016-09-06eScience: Panel What [1/9]
2016-09-06Bio Tools - Microsoft Computational Finance Server as a Platform for Computational Biology



Tags:
microsoft research