Ryan Newton, Indiana Univ.
Title: Objective Computing and the Semantic Gap
What if computations were self-contained, deterministic and given a clear meaning separate from observer or host machine? That is, what if they were objective? Compared to today’s ad hoc approach to reproducibility, this would aid program debugging, scientific replication, and even financial audits. In fact, practical, hermetically-sealed computations are possible, but achieving high performance is a challenge. Hardware-specific tuning is not an option, and parallelism—while mandatory for performance—makes determinism a challenge.
In this talk, I will describe several years of work towards building practical deterministic parallel languages and libraries, including a mechanism to generalize inter-thread communication and parallel reductions. However, by designing high-level, portable abstractions we open up a semantic gap between our languages and the underlying hardware, which is a problem but also an opportunity. I argue that now is the time to reevaluate assumptions in our compilers and undertake a new effort to radically transform the data representations of user programs. We will focus on one example of a new compiler that transforms recursive tree-traversals into linear, stream-processing code. This compiler takes idiomatic purely functional code—amenable to formal verification—and converts it into faster tree-walking code than that produced by any existing compiler.
Ryan Newton received his Ph.D. in computer science from MIT in 2009, advised by Arvind and Samuel Madden. His thesis introduced techniques for efficiently distributing a single logical program over a sensor network. From 2009 through 2011, Ryan was an engineer in the developer products division at Intel, where he worked on parallel programming tools, including Cilk and CnC. Since 2011, Ryan leads a group of programming languages researchers interested in increasing the safety and parallel performance of high-level, declarative programs.