WaveScope: Stream Programming on Heterogeneous Wireless Devices

  • Ryan Newton | MIT

How do we maintain programmer productivity in an era with an exploding number of networked processing cores and increasing diversity among them? In this talk I offer a partial solution in the form of WaveScope, a programming environment for embedded, distributed stream-processing that we have used in a variety of sensor network applications. Sensor networks are a prime example of heterogeneous parallelism; they are distributed collections of phones, low-power embedded devices, and PCs containing a variety of processing cores.

WaveScope is based on an asynchronous dataflow model and is suited for applications from signal processing to financial analysis and distributed data processing. A WaveScope program generates a graph of communicating actors; the compiler profiles these actors on various target platforms and then solves the partitioning problem: spreading actors across heterogeneous devices as well as across homogeneous multicores. To achieve performance and platform portability, the WaveScope solution involves a variety of compiler and runtime techniques; in this talk I will focus on multi-stage programming, domain specific optimizations, and program partitioning.

Speaker Details

Ryan Newton has just completed his Ph.D. at MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL). He works on tool support for parallel and distributed computation, both in embedded sensor networks and high performance parallel computers. He likes to get his hands dirty with applications. For the last several years this has meant sensor network deployments. More information can be found at http://people.csail.mit.edu/newton/.