Go to content

Thinking In Parallel by Stuart Marks and Brian Goetz

The Java 8 Streams library makes it easy to run code in parallel. A common error is code that works when run sequentially but that misbehaves when run in parallel. This is often caused by programmers who are stuck in a mode of imperative, left-to-right thinking. This leads to an iterative style where data is mutated, and where the next result depends on the result of the previous computation, creating barriers to parallel computation. This presentation covers alternative programming technique called "array programming," where operations are applied on data aggregates instead of individual elements. It also includes examples and demonstrations that illustrate these techniques and how they lead easier-to-understand, parallel-ready code. Stuart Marks is a Principal Member of Technical Staff in the Java Platform Group at Oracle. He is currently working on a variety of JDK core libraries projects, including Collections, Lambda, and Streams, as well as improving test quality and performance. As his alter ego "Dr Deprecator" he also works on the Java SE deprecation mechanism. He has previously worked on JavaFX and Java ME at Sun Microsystems. He has over twenty years of software platform product development experience in the areas of window systems, interactive graphics, and mobile and embedded systems. Stuart holds a Master's degree in Computer Science and a Bachelor's degree in Electrical Engineering from Stanford University. Brian Goetz is the Java Language Architect at Oracle, and was the specification lead for JSR-335 (Lambda Expressions for the Java Programming Language.) He is the author of the best-selling Java Concurrency in Practice, as well as over 75 articles on Java development, and has been fascinated by programming since Jimmy Carter was President. [VNH-8902]

November 7, 2016